PDO 错误信息?

2021-12-26 00:00:00 php pdo

这是我的代码片段:

$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());

这应该给我一个错误,因为这些表甚至不存在.然而,我得到的只是这个:

This should give me an error because the tables don't even exist. All I get however is this:

数组 ( [0] => 00000 )

Array ( [0] => 00000 )

如何更好地描述错误以便调试问题?

How can I get a better description of the error so I can debug the issue?

推荐答案

试试这个:

print_r($sth->errorInfo());

在准备之前添加:

$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

这将更改 PDO 错误报告类型并使其在出现 PDO 错误时发出警告.它应该可以帮助你追踪它,虽然你的 errorInfo 应该已经下注了.

This will change the PDO error reporting type and cause it to emit a warning whenever there is a PDO error. It should help you track it down, although your errorInfo should have bet set.

相关文章