Home  >  Article  >  PHP Framework  >  swoole learning asynchronous Mysql

swoole learning asynchronous Mysql

coldplay.xixi
coldplay.xixiforward
2021-03-18 11:27:472224browse

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
  • portPort number, default 3306
  • userusername
  • passwordpassword
  • databaseSelected database
  • charsetSet the client character set
  • timeout Connection timeout, default 1.0

$callbackCallback 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_errorGet error code and error information

##query($sql, $callback) 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

callback function

function($link,$result)

    When SQL execution fails, that is,
  • $result == false At this time, the error message can be obtained through $link->error, $link->errno can obtain the error code,
  • execution is successful,
  • $result = = true, get the number of affected rows through $link->affected_rows, $link->insert_idget the auto-increment of insert operation When ID
  • is executed successfully and SQL is a query statement,
  • $result returns the query result array

closeClose the connection
 $db->close();

Close the entire SQL connection

on($event_name,$callback) Callback function

Currently

swoole_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))

Open things

Start a
    MySQL
  • transaction. If the transaction is started successfully, The function specified by the callback is combined with
  • commit
  • and rollback to implement MySQL transaction processing the same
  • MySQL
  • Connection object, only one transaction can be started at the same time You must wait until the previous transaction
  • commi
  • t or rollback to continue to start a new transaction Otherwise, the bottom layer will throw a
  • Swoole\MySQL\Exception
  • exception. The exception code is 21
  • ##commit($callback )
Commit the transaction

Submit the transaction, this function will be called back when the server returns a response

    You must first call begin to start the transaction before calling commit, otherwise the bottom layer will throw
  • Swoole \MySQL\Exception
  • Exception
  • Exceptioncode
  • is
  • 22##rollback($callback)
  • Things rollback

You must first call begin to start the transaction before you can call rollback, otherwise the bottom layer will throw Swoole\MySQL\Exception

Exception
  • Exceptioncode
  • 22
  • ##Official example:<pre class="brush:php;toolbar:false">$db-&gt;begin(function( $db, $result) {     $db-&gt;query(&quot;update userinfo set level = 22 where id = 1&quot;, function($db, $result) {         $db-&gt;commit(function($db, $result) {             echo &quot;commit ok\n&quot;;         });     });});</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!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete

Related articles

See more