Coroutine\MySQL->query
最后更新于:2022-04-02 06:28:47
# Coroutine\\MySQL->query
[TOC]
执行SQL语句
~~~
array|bool query(string $sql, double $timeout = -1)
~~~
* `$sql`:SQL语句
* `$timeout`:超时时间,`$timeout`如果小于或等于`0`,表示永不超时。在规定的时间内`MySQL`服务器未能返回数据,底层将返回`false`,设置错误码为`110`,并切断连接
* 返回值:超时/出错返回`false`,否则以数组形式返回查询结果
~~~
$swoole_mysql = new Swoole\Coroutine\MySQL();
$swoole_mysql->connect([
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'user',
'password' => 'pass',
'database' => 'test',
]);
$res = $swoole_mysql->query('select * from $table');
if($res === false) {
return;
}
foreach ($res as $value) {
echo $value['f_filed_name'];
}
~~~
## 延迟接收
设置`defer`后,调用`query`会直接返回`true`。调用`recv`才会进入协程等待,返回查询的结果。
';