当PDO:commit
失败时,是否引发异常?或者只是返回false
?
docs没有提到任何异常,但其中一条评论说它提到了异常。我自己想不出办法来测试。
最佳答案
从php_pdo.c看来,commit方法实际上可以抛出异常。至少,当没有活动事务时。
static PHP_METHOD(PDO, commit)
{
pdo_dbh_t *dbh = Z_PDO_DBH_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
}
PDO_CONSTRUCT_CHECK;
if (!dbh->in_txn) {
zend_throw_exception_ex(php_pdo_get_exception(), 0, "There is no active transaction");
RETURN_FALSE;
}
if (dbh->methods->commit(dbh)) {
dbh->in_txn = 0;
RETURN_TRUE;
}
PDO_HANDLE_DBH_ERR();
RETURN_FALSE;
}
关于php - PDO::commit是否会在失败时引发异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29679194/