
官方示例:
$db = new swoole_mysql();$server = array(
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'test',
'password' => 'test',
'database' => 'test',
'charset' => 'utf8', //指定字符集
'timeout' => 2, // 可选:连接超时时间(非查询超时时间),默认为SW_MYSQL_CONNECT_TIMEOUT(1.0));$db->connect($server, function ($db, $result) {
if ($result === false) {
var_dump($db->connect_errno, $db->connect_error);
die;
}
$sql = 'show tables';
$db->query($sql, function(swoole_mysql $db, $result) {
if ($result === false)
{
var_dump($db->error, $db->errno);
}
elseif ($result === true )
{
var_dump($db->affected_rows, $db->insert_id);
}
var_dump($result);
$db->close();
});});推荐(免费):swoole
常用函数:
connect($config, $callback) 连接数据库$config= array(
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'test',
'password' => 'test',
'database' => 'test',
'charset' => 'utf8', //指定字符集
'timeout' => 2, // 可选:连接超时时间(非查询超时时间),默认为SW_MYSQL_CONNECT_TIMEOUT(1.0));host 主机ip地址port端口号,默认3306user用户名password密码database选择的数据库charset设置客户端字符集timeout 连接超时时间,默认1.0$callback回调函数function($db, $result )
$db swoole_mysql的对象$result 返回值 , 为true的时候才能执行query , 为false的时候 , 可以通过$db->connect_errno 和$db->connect_error获取错误码和错误信息query($sql, $callback) 执行sql语句$sql = "select * from test ";$db->query($sql,function($link,$result){});$sql为要执行的SQL语句$callback回调函数
每个MySQLi连接只能同时执行一条SQL,必须等待返回结果才能执行下一条SQL
回调函数function($link,$result)
$result == false的时候,通过$link->error可获得错误信息,$link->errno获得错误码$result == true ,通过$link->affected_rows获得受影响的行数 , $link->insert_id获得insert操作的自增ID$result返回的是查询结果数组close关闭连接$db->close();
将整个SQL连接关闭
on($event_name,$callback) 回调函数目前swoole_mysql只有一个onClose回调函数
//mysql连接关闭时,自动触发$db->on('close',function($db){
echo "mysql connection is closed";});swoole_mysql中的事物
在官方文档中有详细介绍:
begin(function($db,$result))开启事物MySQL事务,事务启动成功会回调指定的函数commit和rollback结合实现MySQL事务处理MySQL连接对象,同一时间只能启动一个事务commit或rollback才能继续启动新事务Swoole\MySQL\Exception异常,异常code为21
commit($callback)提交事物Swoole\MySQL\Exception异常code为22
rollback($callback)事物回滚Swoole\MySQL\Exception异常code为22
官方示例:
$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";
});
});});
以上就是swoole学习之异步Mysql的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号