Php 模拟行级锁定事务
我使用以下逻辑为多个用户读写同一行实现了行级锁定事务Php 模拟行级锁定事务,php,mysql,sql-server,transactions,Php,Mysql,Sql Server,Transactions,我使用以下逻辑为多个用户读写同一行实现了行级锁定事务 if(isset($_POST['button']){ if($condition == true){ mysqli_autocommit($mysqli, FALSE); mysqli_begin_transaction($mysqli, MYSQLI_TRANS_START_READ_WRITE); //...Update table here mysqli_comm
if(isset($_POST['button']){
if($condition == true){
mysqli_autocommit($mysqli, FALSE);
mysqli_begin_transaction($mysqli, MYSQLI_TRANS_START_READ_WRITE);
//...Update table here
mysqli_commit($mysqli);//commit records to database and
}else{
mysqli_rollback($mysqli);
}
}
如果我在单击按钮后检查数据库中的表,结果与我预期的一样,唯一的问题是我不确定是否有任何方法可以模拟多个用户来测试是否可能发生死锁。是否有更好的方法来解决此问题。此外,Xammp向我抛出了以下错误
警告:mysqli_begin_transaction():此服务器版本不支持“读写”和“只读”。第38行的C:\xampp\htdocs\folder\somepage.php中至少需要5.6.5
您正在运行哪个版本的MYSQL?第38行报告了错误,但您只显示了10行,这10行无论如何都不会死锁。第二次执行将阻塞并等待第一个脚本提交,然后第二次执行将继续,升级并提交其脚本change@RiggsFolly在我评论的区域中有一堆SELECT和Update语句,
/…这里的Update table
行mysqli\u begin\u事务()
是导致完整代码出错的原因,它位于第38行。但它仍在工作。我将在一台实时服务器上测试,也许我的托管公司的版本是最新的。我也会在创建帐户之前与他们核实。我试图简化我的帖子。很抱歉造成混淆。我会编辑它。