<?php class AysMysql{ public $swoole_mysql; public $dbConfig = []; public function __construct(){ $this->swoole_mysql = new swoole_mysql();//创建实例 //连接配置 $this->dbConfig = [ 'host' => '122.51.29.205', 'port' => 3306, 'user' => 'root', 'password' => 'root', 'database' => 'ws', ]; } //实现数据操作 public function excute($sql){ //连接mysql $this->swoole_mysql->connect($this->dbConfig,function ($db,$res) use ($sql){ if($res===false){ echo '数据库连接失败'; return; } //执行sql $db->query($sql,function ($db,$res2){ //对执行结果进行判断 if($res2===false){ echo 'SQL执行失败:'.$db->error.PHP_EOL; }else if($res2===true){ //非查询语句执行 echo "sql语句执行成功,影响行数 : " . $db->affected_rows.PHP_EOL; }else{ //查询语句打印 var_dump($res2); } //关闭链接 $db->close(); }); }); } } $obj = new AysMysql(); //拼写sql语句 // $sql = "insert into user values(null,'test','123456','test@qq.com','18201119999',1)"; // $sql = "select * from user"; // $sql = "update user set username='test222' where id=15"; $sql = "delete from user where id =14"; $obj->excute($sql);
使用异步mysql好处 :
- 防止代码阻塞,提高代码效率
适用场合:
- 不涉及共享资源,或对共享资源只读,即非互斥操作
- 没有时序上的严格关系
- 不需要原子操作,或可以通过其他方式控制原子性
- 常用于IO操作等耗时操作,因为比较影响客户体验和使用性能
- 不影响主线程逻辑