【问题标题】:Fatal Error: Call to undefined method PDOStatement::prepare()致命错误:调用未定义的方法 PDOStatement::prepare()
【发布时间】:2017-04-11 21:48:43
【问题描述】:

当我试图将数组的内容放入数据库时​​,我偶然发现了一个错误。我仍然是 PHP 磨砂,也许错误很明显,但我似乎找不到我的修复方法。

谁能告诉我我做错了什么。

foreach ($items as $item) {
    $connection = $connection->prepare("INSERT INTO items (ItemName) VALUES (ItemName)");
    $connection->execute(array('ItemName' => $item));
}
?>

【问题讨论】:

  • $connection 已在某处定义?
  • 看起来 $connection 不是 PDO 对象,而是“已经”的 PDOStatement。你在哪里定义的?
  • 这是一个错字;你错过了值中的冒号

标签: php mysql pdo


【解决方案1】:

看来,$connection 不是您想的那样,应该是这样。正如错误告诉你的那样,$connectionPDOStatement 而不是 PDOPDOStatement 没有 prepare 方法。

会发生这种情况,因为在每个循环中(第一个循环除外),您都会用prepare 的结果覆盖$connection(这是PDOStatement!)

鉴于,在循环 $connectionPDO 对象之前,您应该将循环内的代码更改为类似这样的内容

foreach ($items as $item) {
    $query = $connection->prepare("INSERT INTO items (ItemName) VALUES (:ItemName)");
    $query->execute(array(':ItemName' => $item));
}

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2015-01-28
    相关资源
    最近更新 更多