php - PHP不显示PDO错误,即使我设置了错误处理

  显示原文与译文双语对照的内容
0 0

我需要使用PDO在数据库中插入一行。 但它并不工作,并且它不打印任何错误,这样我不知道问题在哪里。

连接没问题,因为我可以运行更新查询。

但是在这个查询中,它不会打印任何错误而被粘住:


$dbtype ="mysql";
$dbhost ="xxx";
$dbname ="xxx";
$dbuser ="xxx";
$dbpass ="xxx";

$db = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass,array(PDO::MYSQL_ATTR_INIT_COMMAND =>"SET NAMES utf8"));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql ="INSERT INTO users (id, name) VALUES (:id,:name)";
$q = $db->prepare($sql);

$q->execute(array(
 ':id'=>$id,
 ':name'=>$name
));

除这里命令之外,还有其他方法可以调试?


$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

时间: 原作者:

0 0

可以能你已经关闭了 error reporting your,如果你的代码引发了一个异常,则不尝试捕捉。

所以你必须把你的代码放到 try and catch 块 e.g. 中


try {
//your stuff
} catch(PDOException $e) {
 echo $e->getMessage();
}

因为当出现错误时,你的bapi被设置为引发异常,因这里你必须在这个块中捕获。 另外,我建议你打开错误报告,以获取有用的错误消息( 。仅在生产期间从不执行) 。

原作者:
...