我有以下代碼:PHP的mysqli多查詢+交易
...
$mysqli->autocommit(FALSE);
if(in_array('files',$item)){
$sql_el_truncate = "
TRUNCATE TABLE `article_files`;
TRUNCATE TABLE `files`;
TRUNCATE TABLE `gallery_files`;
TRUNCATE TABLE `image_captions`;
";
$mysqli->multi_query($sql_el_truncate);
do{
$mysqli->use_result();
}while ($mysqli->next_result());
if ($mysqli->errno) {
$valid_entry = 0;
}
echo $valid_entry;
}
if($valid_entry){
$mysqli->commit();
}else{
$mysqli->rollback();
}
...
上的錯誤,我得到的0適當$valid_entry
價值,但回退不工作。即使我故意寫了一些TRUNCATE命令,它仍然會運行其餘的命令,給我錯誤但不會回滾。
任何人都知道如何正確使用mysqli
上的交易?
謝謝您的回答!現在你在暗示我做了什麼?保持它原樣,仍然得到一些截斷運行,因爲他們仍然運行或有一種替代方法? –
更新了我的答案。 –