更新数据库时解决 PDO 错误:“SQLSTATE[HY000]:一般错误”
在这篇文章中,我们将深入研究使用 PHP 数据对象 (PDO) 更新数据库时遇到的问题并解决令人困惑的“SQLSTATE[HY000]:一般错误”消息。
问题陈述
提供的代码尝试使用准备好的语句更新数据库。然而,尽管更新成功,却返回错误信息。
$page = 'my_page'; $section = 'content'; $new_content = 'new_content'; $old_content = 'old_content'; try { $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'"); $stmt->execute(array( 'new_content' => $new_content )); $result = $stmt->fetchAll(); // <-- This line may cause the issue echo "Database updated!"; } catch(PDOException $e) { echo 'ERROR UPDATING CONTENT: ' . $e->getMessage(); }
错误消息
ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error
解决办法
问题出在代码中对 fetchAll() 的调用。 fetchAll() 通常用于从成功的查询中检索数据。但是,对于更新或插入查询,此语句是不必要的。删除它应该可以解决问题。
$result = $stmt->fetchAll(); // <-- Remove this line
删除 fetchAll() 语句后,代码应该成功更新数据库,而不会产生错误消息。
以上是如何解决 Laravel PDO 数据库更新中的'SQLSTATE[HY000]:一般错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!