【问题标题】:Php and Mysqli with transaction [duplicate]带有事务的 PHP 和 Mysqli [重复]
【发布时间】:2015-11-07 13:23:47
【问题描述】:

我的交易有问题,因为如果我尝试输入错误的查询, 系统也不应该进入。

系统会插入第一个查询,而第二个没有, 并且不进入回滚

这是我的代码:

$conn = connect();

try {
     /* set autocommit to off */
     $conn->autocommit(FALSE);

    /* MY QUERY */
    $conn->query("INSERT INTO `transazioni` (`id`, `nome`, `numero`) VALUES (NULL, 'luca', '12')");
    $conn->query("I--NSERT INTO `transazioni` (`id`, `nome`, `numero`) VALUES (NULL, 'paolo', '12')");

   /* commit transaction */
   $conn->commit();

    } catch (Exception $e) {
      // faccio rollback
      $conn->rollback();
      echo "enter in rollback";
}           

我该如何解决?

谢谢 安德烈亚

【问题讨论】:

    标签: php mysqli


    【解决方案1】:

    您的问题是由mysql引擎引起的。 MyISAM 不支持事务,你必须更改为 InnoDB。

    另请注意,除非您 configure mysqli for that explicitly.,否则您的 catch 块将不起作用

    【讨论】:

    • 我可以将我的数据库转换为 InnoDB 并且不会丢失任何数据吗?
    • 我现在检查了,我正在使用innodb!
    猜你喜欢
    • 1970-01-01
    • 2013-03-14
    • 2020-07-28
    • 2012-03-10
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    相关资源
    最近更新 更多