AsyncMysql::query($sql, $usePool = true)

    具体使用

    异步Mysql事务处理

    与传统事务一样使用,只是需要加上yield关键词,以异步方式调用

    1. public function test()
    2. {
    3. try {
    4. yield AsyncMysql::begin();
    5. $res = (yield $this->doTrans());
    6. throw new \Exception("need roll back");
    7. }
    8. yield AsyncMysql::commit();
    9. } catch (\Exception $e) {
    10. yield AsyncMysql::rollback();
    11. }
    12. }
    13. public function doTrans()
    14. {
    15. VALUES (NULL, '187681343332', '11111')"));
    16. if ($res) {
    17. $result = $res->getResult();
    18. $affectedRows = $res->getAffectedRows();
    19. $id = $res->getInsertId();
    20. $res = (yield AsyncMysql::query("SELECT * FROM `user` WHERE id = {$id}"));
    21. $res = (yield AsyncMysql::query("SELECT * FROM `user`"));
    22. $res = (yield AsyncMysql::query("DELETE FROM `user` WHERE id = {$id}", false));
    23. }