【问题标题】:PDO Statement Error [closed]PDO 语句错误 [关闭]
【发布时间】:2014-02-24 17:00:03
【问题描述】:

我正在尝试以下列方式使用 PDO Insert 语句(虽然它不起作用..)

$db = new PDO("mysql:host=localhost;dbname=XXXXX","XXXX","");
$query= "INSERT INTO tableS VALUES ("475","1111","XXXY","PREQ","XX");
$result= $db->query($query);
$result -> closeCursor();
$db=null;

我做错了什么?我已经确保输入是正确的,我对 PDO 很陌生。

【问题讨论】:

  • 查看问题中的突出显示。应该很清楚了。
  • Turning on error reporting 可能会帮助您轻松找出此类语法错误。
  • 您不能在字符串中使用与分隔字符串本身相同的引号,除非您对它们进行转义。
  • 这与 PDO 完全没有关系。这纯粹是一个 PHP 语法错误。
  • @Barmar: Why not?

标签: php mysql pdo insert


【解决方案1】:

基本上,您需要混合使用单引号和双引号以正确地将字符串包含在字符串中。查询末尾还缺少",这意味着您的字符串没有正确关闭。如果您查看问题中的代码格式,您可以从$query 下方的红线中看到这一点; PHP 认为这些行是字符串的一部分!

$db = new PDO("mysql:host=localhost;dbname=XXXXXXX","XXXXXXX","XXXXXXX");

// Either mix single- and double-quotes...
$query = "INSERT INTO tableS VALUES ('475','1111','XXXY','PREQ','XX')";
// ...or escape your quotes.
// $query = "INSERT INTO tableS VALUES (\"475\",\"1111\",\"XXXY\",\"PREQ\",\"XX\")";
$result = $db->query($query);
$result->closeCursor();
$db = null;

【讨论】:

  • 感谢克里斯的编辑,不知何故它仍然没有插入。
  • @stretchr - 仍然没有插入?然后有几件事要检查。 tableS 是否存在,它是否正好有五列?您还可以查看使用 PDO::errorCodePDO::errorInfo 来获取任何 SQL 错误。
  • 是的,已经检查了两个详细信息是否正确(tableS 存在,正好 5 列)。现在尝试错误检查
【解决方案2】:

您已使用" 打开$query 变量,但随后再次使用" 分配其中一个值。请改用'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2012-06-02
    • 2014-01-12
    • 1970-01-01
    相关资源
    最近更新 更多