[英]Php mysql transaction not inserting all queries
我有問題 我運行一個包含2個查詢的事務,但是只有一個查詢正在數據庫中寫。另一個則不是。 那怎么可能呢? 我以為這兩者都是或都不是,這就是使用交易權的關鍵嗎?
這是我的代碼的一部分:
mysqli_autocommit($conn, FALSE);
mysqli_query($conn, "INSERT INTO my_table_exemple (orderId, packageName, productId, purchaseTime, purchaseState, purchaseToken)
VALUES ('".$_POST["orderId"]."', '".$_POST["packageName"]."', '".$_POST["productId"]."', '".$_POST["purchaseTime"]."', ".$_POST["purchaseState"].", '".$_POST["purchaseToken"]."')");
mysqli_query($conn, "UPDATE user
SET end_date='".$calcEndDate."'
WHERE id=".$_POST['user_id']);
/* Validation de la transaction */
if (!mysqli_commit($conn)) {
$row_array['status'] = "error";
$row_array['msg'] = "Error: " . mysqli_error($conn);
} else {
$row_array['status'] = "success";
$row_array['msg'] = "Transaction success";
}
echo json_encode($row_array);
這將返回事務成功,更新用戶表,但my_table_exemple中未插入任何記錄。
我猜我的插入查詢有一個錯誤,我要調試它,但是我不想知道為什么我的事務無法按預期方式運行。
您需要在每個查詢之后檢查是否有任何錯誤-在您將回滾的任何錯誤上,如果在提交所有查詢之后都沒有錯誤,則需要提交。 只有沒有錯誤的查詢才會被提交,並且提交將報告有關提交的任何錯誤-而不是先前的查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.