用PHP实现mysql锁表

        //执行SQL语句 锁掉stat_num表

     $sql = "LOCK TABLES stat_num WRITE";   //表的WRITE锁定,阻塞其他所有mysql查询进程
     $DatabaseHandler->exeCute($sql); 

    //执行更新或写入操作

     $sql = "UPDATE stat_num SET `correct_num`=`correct_num`+1 WHERE stat_date='{$cur_date}'";
     $DatabaseHandler->exeCute($sql);

     //当前请求的所有写操作做完后,执行解锁sql语句

     $sql = "UNLOCK TABLES";
     $DatabaseHandler->exeCute($sql);

 

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!
$lnk = mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("BEGIN");
$query = mysql_query("INSERT INTO test VALUES(1, 'yangjun')");
$q1 = mysql_error();
mysql_query("INSERT INTO test VALUES(1, 'yangjun')");
$q2 = mysql_error();
mysql_query("INSERT INTO test VALUES(2, '杨俊')");
$q3 = mysql_error();
if (!$q1 && !$q2 && !$q3) {
mysql_query("COMMIT"); //全部成功,提交执行结果
} else {
mysql_query("ROLLBACK"); //有任何错误发生,回滚并取消执行结果

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
  • 2022-12-23
  • 2021-12-07
  • 2022-12-23
  • 2022-12-23
  • 2022-03-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
相关资源
相似解决方案