swoole_mysql->begin

启动事务。函数原型:

function swoole_mysql->begin(callable $callback);
  • 启动一个MySQL事务,事务启动成功会回调指定的函数
  • commitrollback结合实现MySQL事务处理
  • 同一个MySQL连接对象,同一时间只能启动一个事务
  • 必须等到上一个事务commitrollback才能继续启动新事务
  • 否则底层会抛出Swoole\MySQL\Exception异常,异常code21

事务处理在1.9.15或更高版本可用

使用实例

$db->begin(function( $db, $result) {
    $db->query("update userinfo set level = 22 where id = 1", function($db, $result) {
        $db->commit(function($db, $result) {
            echo "commit ok\n";
        });
    });
});

  • 版本是2.0.7,Fatal error: Uncaught Error: Call to undefined method Swoole\MySQL::begin(),这是怎么回事啊?

  • Xcode_swift

    增删改查都用query回调方法

  • 金刚怒目

    query一次只能执行一条sql,这个事务的意义是什么

  • 过期的奶酪

    同一个MySQL连接对象,同一时间只能启动一个事务, 也就是说,用了单例模式做连接的话, 只能支持一个事务在跑?