qlg.tsgz.moe/vendor/swoole/tests/swoole_mysql/transaction_rollback.phpt
2019-09-06 23:53:10 +08:00

69 lines
2.0 KiB
PHP
Executable File

--TEST--
swoole_mysql: transaction
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
require_once __DIR__ . '/../include/swoole.inc';
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->on("close", function ()
{
echo "closed\n";
});
$swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], function (\swoole_mysql $swoole_mysql, $result)
{
if ($result)
{
$swoole_mysql->begin(function (\swoole_mysql $swoole_mysql)
{
assert($swoole_mysql->errno === 0);
$sql = "SELECT COUNT(*) AS cnt FROM userinfo";
$swoole_mysql->query($sql, function (\swoole_mysql $swoole_mysql, $result)
{
assert($swoole_mysql->errno === 0);
$sql = "UPDATE `userinfo` SET `level` = '19' WHERE `id` = 4; ";
$swoole_mysql->query($sql, function (\swoole_mysql $swoole_mysql, $result)
{
$swoole_mysql->rollback(function (\swoole_mysql $swoole_mysql)
{
$sql = "SELECT * FROM `userinfo` where `id` = 4;";
$swoole_mysql->query($sql, function (\swoole_mysql $swoole_mysql, $result)
{
assert($swoole_mysql->errno === 0);
assert(intval($result[0]['level']) != 19);
echo "SUCCESS\n";
$swoole_mysql->close();
});
});
});
});
});
}
else
{
echo "connect error [errno=$swoole_mysql->connect_errno, error=$swoole_mysql->connect_error]";
}
});
Swoole\Event::wait();
?>
--EXPECT--
SUCCESS
closed