我有一个简单的选择PDO脚本。当我从远程服务器发布它时,我收到500错误。此错误未显示在我的日志中。我的error_log设置为debug。
header("access-control-allow-origin: *");
// includes connect to db file here, $con is declared here -
// this is included in other working scripts currently.
echo 'start';
try {
$stmt = $con->prepare('SELECT * FROM users WHERE userEmail=:email ');
$stmt = $con->bindValue(':email','myemail@example.com');
$stmt->execute();
}
catch (PDOException $e) {
echo $e->getMessage();
}
echo 'finish';
显示无异常错误消息。
我只得到'start'的输出。显然脚本没有完成,但为什么没有让我知道问题是什么?如果我的PDO语句出现问题,是否应该使用$ e-getMessage()报告?
调试此内容我缺少什么?
答案 0 :(得分:1)
这是你的 web-server的,error_log设置为debug。虽然显示的代码是PHP。
因此,您必须让PHP记录错误。检查phpinfo()中的值。 log_errors
必须设置为on
和error_log
至null
。这样PHP将报告error_log
另外,摆脱try / catch echo的东西。切勿在实时服务器上输出错误消息。
并在异常模式下设置PDO。
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );