我正在使用禁用自动提交的 MySQL PDO。
所以我有以下代码:
try
{
$db_connect_handle->beginTransaction();
$pdo_stmt_obj = self::$db_connect_handle->prepare($query_sql_str);
$pdo_stmt_obj->execute();
$db_connect_handle->commit();
}
catch (database_exception $e)
{
$db_connect_handle->rollBack();
print_r($e);
}
echo $db_connect_handle->lastInsertId();
INSERT
查询工作正常。但是,我没有得到$db_connect_handle->lastInsertId()
. 我在提交之前阅读了我应该使用的 PHP 手册lastInsertId
,但是我有一个中央查询脚本,我不想在提交事务之前进行任何 SQL 查询分类。
然后我将代码更改为:
try
{
$pdo_stmt_obj = self::$db_connect_handle->prepare($query_sql_str.'; COMMIT;');
$pdo_stmt_obj->execute();
}
catch (database_exception $e)
{
$db_connect_handle->rollBack();
print_r($e);
}
echo $db_connect_handle->lastInsertId();
瞧!现在我得到了$db_connect_handle->lastInsertId()
.
我的问题是,这会影响 的性能,还会影响INSERT
工作$db_connect_handle->rollBack()
吗?!
提前致谢。