\swoole_mysql

class swoole_mysql

Summary

Methods
Properties
Constants
__construct()
isConnected()
setConnectTimeout()
setQueryTimeout()
connect()
query()
close()
on()
safe_query()
begin()
rollback()
commit()
isUsedindex()
escape()
$connected
$errno
$error
$connect_error
$connect_errno
$affected_rows
$insert_id
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$connected

$connected : boolean

Type

boolean — 是否连接上了MySQL服务器

$errno

$errno : integer

Type

integer — MySQL服务器返回的错误码

$error

$error : string

Type

string — MySQL服务器返回的错误信息

$connect_error

$connect_error : string

Type

string — 发生在sock上的连接错误信息

$connect_errno

$connect_errno : string

Type

string — 发生在sock上的连接错误码

$affected_rows

$affected_rows : integer

Type

integer — 影响的行数

$insert_id

$insert_id : integer

Type

integer — 最后一个插入的记录id

Methods

__construct()

__construct() 

__construct mysql 客户端构造函数

isConnected()

isConnected() : boolean

isConnected 判断连接是否正常

Returns

boolean —

true 处于连接状态,false 非连接状态

setConnectTimeout()

setConnectTimeout(integer  $timeout) : boolean

setConnectTimeout 设置连接超时时间,可重复设置,以最后一次设置为准

Parameters

integer $timeout

超时时间,单位ms,设置为0时,不超时

Returns

boolean —

设置成功返回true,设置失败返回false

setQueryTimeout()

setQueryTimeout(integer  $timeout) : boolean

setQueryTimeout 设置消息发送超时时间,可重复设置,以最后一次设置为准,仅对query生效

Parameters

integer $timeout

超时时间,单位ms,设置为0时,不超时

Returns

boolean —

设置成功返回true,设置失败返回false

connect()

connect(array  $server_config, callable  $callback) : \成功返回

connect 异步连接到 MySql 服务器

Parameters

array $server_config

MySql 服务器的配置,必须为关联索引数组

$server_config = array(
 'host' => '127.0.0.1',  // MySQL服务器的主机地址,支持IPv6(::1)
                         // 和UnixSocket(unix:/tmp/mysql.sock)
 'port' => 3306,         // MySQL服务器监听的端口,可选,默认为3306
 'user' => 'root',       // 用户名,必填
 'password' => '123456', // 密码,必填
 'database' => 'test',   // 要连接的数据库,必填
 'timeout' => '2.0',     // 超时时间,可选,浮点数,默认值为 1.0 秒
 'charset' => 'utf8',    // 设置客户端字符集,可选,
                         //默认使用 Server 返回的字符集;不存在会抛出异常
);
callable $callback

连接完成后回调此函数,函数原型参考onConnect

 连接事件回调函数
 param swoole_mysql $db  mysql对象
 param bool         $result连接结果,true,连接成功,false连接失败

 function onConnect(swoole_mysql $db, bool $result);

Returns

\成功返回 —

true,失败返回 false

query()

query(string  $sql, callable  $callback) : boolean

query 执行 Sql 查询语句,每个 mysql 连接只能同时执行一条 sql 语句,必须等待返回结果后才能执行下一条 sql

Parameters

string $sql

要执行的 sql 查询语句

callable $callback

执行成功后回调此函数,函数原型参见onSQLReady

 onSQLReady mysql语句执行结果回调
 $link mysql对象
 $result  false|true|array
          false: 失败,可通过$link对象的error属性获得错误信息,errno属性获得错误码;
          true: 执行非查询语句结果,读取$link对象的affected_rows属性获得影响的行数,
                       insert_id属性获得Insert操作的自增ID;
          array: 执行查询语句结果,$result为结果数组.

 function onSQLReady(swoole_mysqli $link, mixed $result);

Returns

boolean —

执行成功返回 true,失败返回 false

close()

close() : boolean

close 关闭MySql连接

Returns

boolean

on()

on(string  $event_name, callable  $callback) : boolean

on 注册异步 MySql 客户端事件回调函数,必须在 connect 前被调用

Parameters

string $event_name

事件名称,事件类型

"close"      // 连接关闭事件
callable $callback

事件回调函数,函数原型参见onClose

连接关闭事件回调
param swoole_mysql $db  mysql对象
function onClose(swoole_mysql $db);

Returns

boolean —

成功返回 true,失败返回 false

safe_query()

safe_query(string  $sql, array  $bindparam, callable  $callback) : false

safe_query,执行带预处理的查询语句

Parameters

string $sql

要执行的带预处理的 sql 查询语句

array $bindparam

绑定$sql中占位符参数支持预处理。 :与?不可混用、每个占位符都必须绑定参数、 占位符个数必须与绑定参数个数一致、参数必须定义

callable $callback

回调函数 必选,如onBegin($swoole_sql), $result == true: 执行成功; $result == false: 执行失败;

//带预处理的 sql 示例,2 种点位符示例:
 $sql = "SELECT COUNT(1) AS cnt FROM zan_test
         WHERE market_id = :market_id AND goods_id = :goods_id";
 $bindparam = ["market_id" => 1, "goods_id" => 2];

 $sql = "SELECT COUNT(1) AS cnt FROM zan_test WHERE market_id = ? AND goods_id = ?";
 $bindparam = [1, 2];

Returns

false —

接口调用失败,true 接口调用成功

begin()

begin(callable  $callback) : false

begin,启动一个事务

Parameters

callable $callback

回调函数,必选, 如onBegin($swoole_sql), $result == true: 执行成功; $result == false: 执行失败;

Returns

false —

接口调用失败,true 接口调用成功

rollback()

rollback(callable  $callback) : false

rollback,回滚由begin发起的当前事务

Parameters

callable $callback

回调函数,必选, 如onRollback($swoole_sql), $result == true: 执行成功; $result == false: 执行失败;

Returns

false —

接口调用失败,true 接口调用成功

commit()

commit(callable  $callback) : false

commit,提交事务

Parameters

callable $callback

回调函数,必选, 如onCommit($swoole_sql), $result == true: 执行成功; $result == false: 执行失败;

Returns

false —

接口调用失败,true 接口调用成功

isUsedindex()

isUsedindex() : false

isUsedindex,判断当前查询是否使用索引

Returns

false —

当前查询未使用索引,true 当前查询使用了索引

escape()

escape(string  $str) : string|false

转义SQL语句中的特殊字符,避免 SQL 注入攻击。底层基于 mysqlnd 提供的函数实现,需要依赖 PHP 的 mysqlnd 扩展。 编译时需要增加 --enable-mysqlnd 来启用,如果PHP环境中没有 mysqlnd 将会出现编译错误

Parameters

string $str

要转义的字符串

$db->connect($server, function ($db, $result) {
     $data = $db->escape("abc'efg\r\n");
});

Returns

string|false —

成功返回转义后的 string,失败返回 false