\Swoole\CoroutineMysql

Class Mysql 需要在编译swoole时增加--enable-coroutine来开启此功能

Summary

Methods
Properties
Constants
connect()
send()
recv()
close()
query()
escape()
begin()
commit()
rollback()
setDefer()
prepare()
$serverInfo
$sock
$connected
$connect_error
$connect_errno
$error
$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

$serverInfo

$serverInfo : array

Type

array — 连接信息,保存的是传递给构造函数的数组

$sock

$sock : integer

Type

integer — 连接使用的文件描述符

$connected

$connected : boolean

Type

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

$connect_error

$connect_error : string

Type

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

$connect_errno

$connect_errno : integer

Type

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

$error

$error : string

Type

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

$errno

$errno : integer

Type

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

$affected_rows

$affected_rows : integer

Type

integer — 影响的行数

$insert_id

$insert_id : integer

Type

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

Methods

connect()

connect(array  $serverInfo) : boolean

建立 MySQL 连接

Parameters

array $serverInfo

[ 'host' => 'MySQL IP地址', 'user' => '数据用户', 'password' => '数据库密码', 'database' => '数据库名', 'port' => 'MySQL端口 默认3306 可选参数', 'timeout' => '建立连接超时时间', 'charset' => '字符集' ]

Returns

boolean

send()

send(string  $data) : boolean

发送数据

Parameters

string $data

发送的数据,必须为字符串类型,支持二进制数据

Returns

boolean

recv()

recv() : array

从服务器端接收数据

底层会自动yield,等待数据接收完成后自动切换到当前协程。

Returns

array

close()

close() : boolean

close the connection

Returns

boolean —

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

query()

query(string  $sql, double  $timeout = 0.0) : array|boolean

执行SQL语句

Parameters

string $sql
double $timeout

超时时间,超时的话会断开MySQL连接,0表示不设置超时时间。

Returns

array|boolean —

超时/出错返回 false,否则以数组形式返回查询结果

escape()

escape(string  $str) : string

use mysqlnd to escape the string use --enable-mysqlnd when compile

Parameters

string $str

Returns

string

begin()

begin() 

start a new transaction one link only one transaction, if already exist, then exception function callback(\Swoole\Mysql $link, mixed $result) {}

commit()

commit() 

commit transaction if not exist, then exception function callback(\Swoole\Mysql $link, mixed $result) {}

rollback()

rollback() 

rollback transaction if not exist, then exception function callback(\Swoole\Mysql $link, mixed $result) {}

setDefer()

setDefer(boolean  $bool = true) 

延迟收包

Parameters

boolean $bool

prepare()

prepare(string  $sql) : \Swoole\Coroutine\Mysql\Statement

向MySQL服务器发送SQL预处理请求。 prepare必须与execute配合使用。 预处理请求成功后,调用execute方法向MySQL服务器发送数据参数。

Parameters

string $sql

Returns

\Swoole\Coroutine\Mysql\Statement