SQLite3::escapeString

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

SQLite3::escapeString返回已正确转义的字符串

说明

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

返回已正确转义的字符串,以便安全地包含在 SQL 语句中。

警告

此函数尚未实现二进制安全!

要正确处理可能包含 NUL 字符的 BLOB 字段,请使用 SQLite3Stmt::bindParam()

参数

string

要转义的字符串。

返回值

返回已正确转义的字符串,可安全地用于 SQL 语句中。

注释

警告

addslashes() 不应用于为 SQLite 查询引用字符串;它会导致在检索数据时出现奇怪的结果。

添加备注

用户贡献的备注 2 则备注

alec at alecnewman dot com
14 年前
此函数不转义双引号的原因是双引号用于名称(等同于 MySQL 中的反引号),如表名或列名,而单引号用于值。

这一点很重要,尤其是在来自其他 SQL 实现时。它会导致奇怪的问题,例如,查询

SELECT * FROM table WHERE column1="column1"

实际上将返回所有记录,因为 column1 始终等于 column1。这应该改为

SELECT * FROM table WHERE column1='column1'

此函数不转义双引号,因为它们在单引号字符串中没有特殊含义。
nhl261 at yahoo dot com
9 年前
如果字符串包含 "\0" 字符,请小心。
参见:https://bugs.php.net/bug.php?id=63419
To Top