原谅我,我是初学者。以下代码返回解析错误:
$query = "INSERT INTO scenario_needgames VALUES ("$id", "Battle of the Bulge")";
phpMyAdmin 中的查询构建器给了我这个稍微修改过的有效字符串:
$query = "INSERT INTO scenario_needgames VALUES (\"$id\" , \"Battle of the Bulge\");";
但我很困惑为什么引号实际上是查询语法的一部分而不是 - 比如说 - 标题或字符串的一部分时需要转义?我正在学习的介绍性书籍不包括此类简单字符串的内容。
$id 值是 7 位数字、4 个字母和 3 个数字(如果您好奇的话)。
谢谢。
最佳答案
双引号需要在双引号字符串中转义,或者您可以使用单引号字符串而不必转义双引号,但是您不能直接插入变量,您必须改用连接:
$query = 'INSERT INTO scenario_needgames VALUES ("' . $id . '", "Battle of the Bulge")';
或者,只需将内部双引号替换为单引号:
$query = "INSERT INTO scenario_needgames VALUES ('$id', 'Battle of the Bulge')";
我建议使用 mysql_real_escape_string
正确安全地引用字符串。您可能还想看看使用准备好的语句代替 PDO或 mysqli .
关于关于 ""的 php mysql 查询语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656880/