Coroutine\MySQL\Statement->execute

最后更新于:2022-04-02 06:29:01

# Coroutine\\MySQL\\Statement->execute [TOC] 向`MySQL`服务器发送`SQL`预处理数据参数。`execute`必须与`prepare`配合使用,调用`execute`之前必须先调用`prepare`发起预处理请求。 `execute`方法可以重复调用。 ~~~ function Coroutine\MySQL\Statement->execute(array $params, float $timeout = -1) : bool ~~~ > 需要`2.0.11`或更高版本 ## 参数 * `$params`预处理数据参数,必须与`prepare`语句的参数个数相同。`$params`必须为数字索引的数组,参数的顺序与`prepare`语句相同 * `$timeout`超时时间,在规定的时间内`MySQL`服务器未能返回数据,底层将返回`false`,设置错误码为`110`,并切断连接 ## 返回值 * 成功时返回`ture`,如果设置`connect`的`fetch_mode`参数为`true`时,(需要 4.0 或更高版本) * 成功时返回`array`数据集数组,如不是上述情况时, * 失败返回`false`,可检查`$db->error`和`$db->errno`判断错误原因 ## 示例 ~~~ use Swoole\Coroutine as co; co::create(function() { $db = new co\MySQL(); $server = array( 'host' => '127.0.0.1', 'user' => 'root', 'password' => 'root', 'database' => 'test', ); $ret1 = $db->connect($server); $stmt = $db->prepare('SELECT * FROM userinfo WHERE id=? and name=?'); if ($stmt == false) { var_dump($db->errno, $db->error); } else { $ret2 = $stmt->execute(array(10, 'rango')); var_dump($ret2); $ret3 = $stmt->execute(array(13, 'alvin')); var_dump($ret3); } }); ~~~
';