我目前正在使用PHP 5.3.24版本的服务器
将mysqli与预备语句一起使用。
我试图为多个查询实现事务,因此如果其中一个查询失败,则所有内容都会回滚。
我在SO答案中尽可能多地挖掘,但我尝试的那些似乎都没有用,不知道我做错了什么。
代码:
$mysqli->autocommit(FALSE);
$query = "UPDATE table SET value = ? WHERE id = ?";
$stmt = $mysqli->prepare( $query );
foreach($_POST as $key => $value){
$stmt->bind_param( 'si', $value, $key );
$stmt->execute();
}
if (!$mysqli->commit()) {
$mysqli->rollback();
return false;
} else {
return true;
}
示例中的循环大约有10次迭代,无论我是将第一次设置为失败还是其他任何查询都在错误的情况下执行。