php无法输出pdo的错误信息

时间:2020-09-04

PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle

PDO::errorCode() - 获取跟数据库句柄上一次操作相关的 SQLSTATE

PDOStatement::errorCode() - 获取跟上一次语句句柄操作相关的 SQLSTATE

PDOStatement::errorInfo() - 获取跟上一次语句句柄操作相关的扩展错误信息

上面几个方法是有区别的,一个是在pdo实例上取错误信息,一个是在预处理对象上取错误信息。

如果在pdo实例对象无法拿到错误信息,一般是使用了预处理,所以可以通过PDOStatement实例获取错误信息。

/* 开始一个事务,关闭自动提交 */
$dbh->beginTransaction();

/* 在全有或全无的基础上插入多行记录(要么全部插入,要么全部不插入) */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* 提交更改 */
$dbh->commit();

$dbh

pdo实例对象

$sth

PDOStatement实例对象