php - 事务无法正常工作 - PHP 和 MySql

标签 php mysql

我是 PHP 事务概念的初学者。我的代码不起作用。我不知道我的错误是什么。任何人都可以帮助我找出我的错误。

我的第一个查询是错误的。它不起作用。第二次执行成功。如果我通过 IF 条件检查,我的控件成功移动到其他部分。没关系。但我的回滚功能不起作用。第二次查询日期将出现在表中。

我的错误是什么?

<?php
$link = mysqli_connect("localhost", "root", "", "hrms_db");

/* check connection */
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

/* Transaction start */
mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_WRITE);

/* disable autocommit */
mysqli_autocommit($link, FALSE);

$result1  = mysqli_query($link, "INSERT INTO EmployeeBackup (Name, OfficialEmail, Department, Manager_ID, MobileNO, Status, Location, full_name) value ('s', 's', '1' , '3', '5', '4', '5' , '78')");
$result2 = mysqli_query($link, "INSERT INTO hrms_general_master (lookup_type,   lookup_description) value ('Testing', 'Testing')" );

if($result1 && $result2){
/* commit insert */
mysqli_commit($link);
echo "All queries were executed successfully";
} else{
/* Rollback */
mysqli_rollback($link);
echo "All queries were rolled back";
}

mysqli_close($link);
?>

然后请解释一下mysqli_begin_transaction中使用的不同类型的参数及其用途。我对 mysqli_begin_transaction 和 mysqli_commit 没有更多疑问。请澄清我的疑问。

谢谢。

最佳答案

您需要 InnoDB 访问方法才能使用事务。创建 MyISAM 的人并没有在他们的代码中包含事务。

网上有大量教程解释了一般的 DBMS 事务,特别是 MySQL 事务。这里只是其中之一。 http://www.tutorialspoint.com/mysql/mysql-transactions.htm

关于php - 事务无法正常工作 - PHP 和 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32564239/

相关文章:

php - abs() : Argument #1 ($num) must be of type int|float, 给出的字符串

MySQL 事务死锁,但 SHOW ENGINE INNODB STATUS 不显示真正的死锁

mysql - 在sql中存储多对多分层数据的最佳方式

表格内的 PHP 下拉菜单

mysql - 无法添加外键约束 (GUID)

php - 在 2 个或更多表上使用 SELECT

javascript - 有效的电子邮件仍然返回 false

php - 如何将 Bootstrap Carousel 图像标题放置在 carousel div 之外?

java - 如何在 MySQL 后端的 Hibernate save() 调用上设置超时?

php - 通过 php 执行时,MySQL 输出未格式化