您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

swoole学习之异步Mysql

2024/5/2 6:50:54发布11次查看
官方示例:
$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)
当sql执行失败即$result == false的时候,通过$link->error可获得错误信息,$link->errno获得错误码执行成功,$result == true ,通过$link->affected_rows获得受影响的行数 , $link->insert_id获得insert操作的自增id执行成功 且sql为查询语句的时候, $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为21commit($callback)提交事物提交事务,当服务器返回响应时回调此函数必须先调用begin启动事务才能调用commit否则底层会抛出swoole\mysql\exception异常异常code为22rollback($callback)事物回滚必须先调用begin启动事务才能调用rollback否则底层会抛出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的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product