69 lines
2.0 KiB
PHP
Executable File
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
|