我仍然可以在PHP提交/回滚中使用“insert_id”吗?

时间:2013-12-11 21:20:24

标签: php mysqli commit rollback

我有一个PHP应用程序,每当我提交表单时都会自动提交插入。我使用的代码如下所示:

$dbConnection = new mysqli($hostname,$username,$password,$database);

$query = "some query here";
$queryResult = $dbConnection->query($query);
if($queryResult){
    $_SESSION['insertedID'] = $dbConnection->insert_id;
}
else{
}

如您所见,我使用auto_increment值作为SESSION变量。那么,我决定为我的应用程序添加一些提交/回滚保护。所以,我改变了我的代码:

$dbConnection = new mysqli($hostname,$username,$password,$database);
$dbConnection->autocommit(FALSE);
$query = "some query here";
$queryResult = $dbConnection->query($query);
if($queryResult){
    $dbConnection->commit();
    $_SESSION['insertedID'] = $dbConnection->insert_id;
}
else{
    $dbConnection->rollback();
}

但是,我发现“$ dbConnection-> insert_id”函数不再有效。提交/回滚是否可行,或者我运气不好?如果这对提交/回滚不起作用,是否有其他方法可以快速获取最后一个auto_increment ID,或者我也不幸在那里?

1 个答案:

答案 0 :(得分:6)

$dbConnection->insert_id

之前检索commit()