大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关swoole学习之异步MySQL,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联建站网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为网站制作、成都网站建设,成都app软件开发公司以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联建站深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
官方示例:
$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(); });});
常用函数:
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
端口号,默认3306
user
用户名
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
连接对象,同一时间只能启动一个事务
必须等到上一个事务commi
t或rollback
才能继续启动新事务
否则底层会抛出Swoole\MySQL\Exception
异常,异常code
为21
commit($callback)
提交事物提交事务,当服务器返回响应时回调此函数
必须先调用begin启动事务才能调用commit否则底层会抛出Swoole\MySQL\Exception
异常
异常code
为22
rollback($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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。