PHPCon Poland 2024


(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::escapeStringВозвращает правильно экранированную строку


public static SQLite3::escapeString(string $string): string

Возвращает правильно экранированную сроку для безопасного включения в SQL-инструкцию.


Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Для обработки полей типа BLOB, которые могут содержать символ NUL, вместо этой функции используйте SQLite3Stmt::bindParam().

Список параметров


Строка для обработки

Возвращаемые значения

Возвращает правильно экранированную сроку, которая может быть безопасно использована в SQL-инструкции.



addslashes() НЕ должен использоваться для экранирования ваших строк в запросах SQLite; это будет приводить к неожиданным результатам при извлечении ваших данных.

add a note

User Contributed Notes 2 notes

alec at alecnewman dot com
13 years ago
The reason this function doesn't escape double quotes is because double quotes are used with names (the equivalent of backticks in MySQL), as in table or column names, while single quotes are used for values.

This is important to remember, especially coming from another SQL implementation. It can cause strange problems, for example, the query:

SELECT * FROM table WHERE column1="column1"

Would actually return every record, because column1 is always equal to column1. This should instead be:

SELECT * FROM table WHERE column1='column1'

Double quotes are not escaped by the function because they are not interpreted specially within single quoted strings.
nhl261 at yahoo dot com
9 years ago
Be careful if the string contains "\0" char.
To Top