繁体   English   中英

检查语句错误pdo

[英]check statement error pdo

我正在使用此构造来检查为什么不执行语句的错误:

$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也为空,所以我无法保存错误,有人可以帮助我吗? 问候

我不知道为什么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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM