【问题标题】:Zend 2 db transactions?Zend 2 数据库事务?
【发布时间】:2013-01-09 03:49:43
【问题描述】:

我们如何在 Zend 2 中使用事务?我在 API 中没有找到任何东西,Zend 1 的几个问题涉及常规 PDO 函数,但在 Zend 2 中我没有看到类似的东西。

【问题讨论】:

    标签: database transactions pdo zend-framework2


    【解决方案1】:

    ZF2 这个部门的文档有点欠缺:

    开始交易:

    $this->adapter->getDriver()->getConnection()->beginTransaction();
    

    提交交易:

    $this->adapter->getDriver()->getConnection()->commit();
    

    回滚交易:

    $this->adapter->getDriver()->getConnection()->rollback();
    

    【讨论】:

    • 但是为什么 var_dump().... begintTransaction() 或 .... commit() .... 或 rollback() 的结果为 NULL ?
    • 如果你使用 MySQL,你的表是 InnoDB 格式的吗? MyIsam 不支持事务。
    • InnoDB,你可以在这里查看我的代码:stackoverflow.com/questions/27704648/…
    • 如果您将 commit() 更改为 rollback() 插入仍然会发生吗?
    • 我将 commit() 与 rollback() 切换,但它不起作用。这是什么意思?
    【解决方案2】:

    试试这个:

    $adapter = new Zend\Db\Adapter\Adapter(array(
        'driver' => 'pdo',
        'dsn' => 'mysql:dbname=db;hostname=localhost',
        'username' => 'root',
        'password' => 'password',
        'driver_options' => array(
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
        ),
    ));
    
    $adapter->getDriver()->getConnection()->beginTransaction();
    

    DB 将运行命令:

    START TRANSACTION
    

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多