有人可以解释在字符串上使用 mysql_real_escape_string 或在列周围包裹 `` 之间有什么区别。
例如“插入表(``列``)值('$string')”
或
$escapestring = mysql_real_escape_string($string);
"insert into table (column) values ('$escapedstring')"
这两者有什么区别,我应该使用什么?谢谢。
最佳答案
反引号`和单引号'
是有区别的。
反引号用于转义可能与 MySQL 保留字冲突的表名和字段名。如果我有一个名为 date
的字段和一个类似 SELECT date FROM mytable
的查询,我需要避免使用 date
以便当 MySQL解析查询,它将把我对 date
的使用解释为 field 而不是 datatype date
。
单引号 '
用于文字值,如 SELECT * FROM mytable WHERE somefield='somevalue'
。如果 somevalue
本身包含单引号,则需要对它们进行转义以防止过早关闭引号文字。
关于php - 如何通过 PHP 和 mysql 正确转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840230/