关于 ""的 php mysql 查询语法问题

标签 php mysql string syntax

原谅我,我是初学者。以下代码返回解析错误:

$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正确安全地引用字符串。您可能还想看看使用准备好的语句代替 PDOmysqli .

关于关于 ""的 php mysql 查询语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656880/

相关文章:

c++ - 随机整数列表

php - laravel 4 发送邮件时如何处理回调

php - 使用 MYSQL 连接一列中的所有行

string - 将字符串中单词的首字母大写

php - 这个查询有什么问题

php - 根据所选服务更新选择成员

java - 字符串常量池和实习生

php - 将时间范围合并到一个时间范围php

javascript - 表单值未传入 angularjs

php - 通过 javascript 从服务器端显示错误消息