Home > Article > PHP Framework > swoole learning asynchronous Mysql
Official example:
$db = new swoole_mysql();$server = array( 'host' => '127.0.0.1', 'port' => 3306, 'user' => 'test', 'password' => 'test', 'database' => 'test', 'charset' => 'utf8', //指定字符集 'timeout' => 2, // 可选:连接超时时间(非查询超时时间),默认为SW_MYSQL_CONNECT_TIMEOUT(1.0));$db->connect($server, function ($db, $result) { if ($result === false) { var_dump($db->connect_errno, $db->connect_error); die; } $sql = 'show tables'; $db->query($sql, function(swoole_mysql $db, $result) { if ($result === false) { var_dump($db->error, $db->errno); } elseif ($result === true ) { var_dump($db->affected_rows, $db->insert_id); } var_dump($result); $db->close(); });});
Recommended (free):swoole
Commonly used functions:
connect($config, $callback)
Connect to database$config= array( 'host' => '127.0.0.1', 'port' => 3306, 'user' => 'test', 'password' => 'test', 'database' => 'test', 'charset' => 'utf8', //指定字符集 'timeout' => 2, // 可选:连接超时时间(非查询超时时间),默认为SW_MYSQL_CONNECT_TIMEOUT(1.0));
host
Host ip address port
Port number, default 3306user
usernamepassword
passworddatabase
Selected databasecharset
Set the client character settimeout
Connection timeout, default 1.0 $callback
Callback functionfunction($db, $result)
$db
swoole_mysql object$result
The return value can only be executed when it is true query
. When it is false
, it can be executed through $db->connect_errno
and$db->connect_error
Get error code and error information Execute sql statement
$sql = "select * from test ";$db->query($sql,function($link,$result){});
$sql is the SQL statement to be executed
$callbackCallback function
Each MySQLi connection can only execute one SQL statement at the same time, and must wait for the result to be returned before executing the next one. A SQL
function($link,$result)
At this time, the error message can be obtained through
$link->error,
$link->errno can obtain the error code,
, get the number of affected rows through
$link->affected_rows,
$link->insert_idget the auto-increment of
insert operation When ID
returns the query result array
Close the connection
$db->close();
Callback function
Currentlyswoole_mysql
There is only one
onCloseCallback function
//mysql连接关闭时,自动触发$db->on('close',function($db){ echo "mysql connection is closed";});
Things in swoole_mysql
## are detailed in the official documentation:begin(function($db,$result))
specified by the callback is combined with rollback
to implement MySQL
transaction processing
the same
You must wait until the previous transaction rollback
to continue to start a new transaction
Otherwise, the bottom layer will throw a code
is 21
Submit the transaction, this function will be called back when the server returns a responseException
code
##rollback($callback)You must first call begin to start the transaction before you can call rollback, otherwise the bottom layer will throw
Swoole\MySQL\Exceptioncode
是
##Official example:<pre class="brush:php;toolbar:false">$db->begin(function( $db, $result) {
$db->query("update userinfo set level = 22 where id = 1", function($db, $result) {
$db->commit(function($db, $result) {
echo "commit ok\n";
});
});});</pre>
The above is the detailed content of swoole learning asynchronous Mysql. For more information, please follow other related articles on the PHP Chinese website!