【发布时间】:2011-04-29 07:54:03
【问题描述】:
这是我的代码的 sn-p:
$qry = '
INSERT INTO non-existant-table (id, score)
SELECT id, 40
FROM another-non-existant-table
WHERE description LIKE "%:search_string%"
AND available = "yes"
ON DUPLICATE KEY UPDATE score = score + 40
';
$sth = $this->pdo->prepare($qry);
$sth->execute($data);
print_r($this->pdo->errorInfo());
这应该会给我一个错误,因为这些表甚至都不存在。然而,我得到的是:
数组 ( [0] => 00000 )
如何更好地描述错误以便调试问题?
【问题讨论】:
-
尝试在准备之后但在执行之前打印错误
-
这个错误对我来说看起来很清楚, :search_string 将被替换为 'foobar' (包括引号),所以你的最终 sql 语句看起来像 "%'foobar'%" 什么您需要做的是将 % 附加到 ->execute() 语句中的 $data 中。由于这是 3 年前的事情,我相信您已经发现了错误
-
顺便说一句,我遇到了同样的问题,没有错误消息。我学会修复它的唯一方法是将 SQL 复制并粘贴到 phpmyadmin 中并查找输出。有没有其他人弄清楚这一点?我尝试了以下答案。