如題: // 開始事務
$mysqli->autocommit(false); // 設置為不自動提交,因為MYSQL默認立即執行
$stmt = $mysqli->prepare("update seat_table set count = count + 1 where seat_id = ? and count < 50");
$stmt->bind_param("i", $old_seat_id);
if ($stmt->execute()) {
$stmt->close();
$stmt = $mysqli->prepare("update seat_table set count = count-1 where bus_id = ? and seattime = ? and count > 0");
$stmt->bind_param("is", $bus_id, $seattime); if ($stmt->execute()) {
$mysqli->commit(); // 提交
/* 判定事務終止,重新啟用負載均衡 */
$mysqli->autocommit(TRUE);
$mysqli->close();
// if ($flag == 1) { // 執行退款業務// }
echo json_encode(array( "code" => "200", "order_id" => $stmt->insert_id
));
} else { // 減庫失敗
$mysqli->rollback(); die('1500');
}
} else { // 回庫失敗
$mysqli->rollback(); die('2500');
}首先我這個語句報了錯,報Fatal error: Call to a member function bind_param() on a non-object ,報錯地方在第一個語句(加庫存操作count=count+1),但是無解為什么報錯,語句是不會錯的,在命令行可正確執行然而就算報錯了,卻仍然被執行了(十萬個程序員問號),結果就是庫存加了1,要減的沒有變化。我蒙蔽了,大半夜的很頭痛。求助問題所在?。》浅8兄x?。。?
添加回答
舉報
0/150
提交
取消