我正在使用此构造来检查错误为何未执行语句:
$value1 = $username;
$value2 = $firstname;
$value3 = $lastname;
$sql = "INSERT INTO table (row1, row2, row3) VALUES (?, ? , ?)";
try {
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $value1);
$stmt->bindParam(2, $value2);
$stmt->bindParam(3, $value3);
$stmt->execute();
} catch(PDOException $e) {
$var .= $e->getMessage();
}
include 'log.php';
log.php:
$logfile = fopen("logfile.txt", "a");
$error = date("d.m.Y H:i:s")." - ".$var.".\r\n";
fwrite($logfile, $error);
fclose($logfile);
我的数据库中没有插入,我的log.php也是空的,所以我不能保存错误,任何人都可以帮助我?问候
答案 0 :(得分:-1)
我不知道为什么PDO错误会引起PHP用户如此明显的关注。你永远不会看到这么多的包含或图像处理。但由于某种原因,PDO声明总是得到特殊处理。
虽然PDO错误绝对没有什么特别之处。这与任何其他错误完全相同,并且无需采用任何特殊方式处理PDO错误。如果找不到文件 - PHP将记录该错误。如果PDO查询失败 - PHP也会记录该错误。告诉PHP这样做。
ini_set('log_errors', 1);
就是你所需要的。然后运行您的代码并记录错误
$sql = "INSERT INTO table (row1, row2, row3) VALUES (?, ? , ?)";
$stmt = $dbh->prepare($sql);
$stmt->execute(array($username, $firstname, $lastname));