亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

swoole學習之異步Mysql

發布時間:2021-03-18 11:43:40 來源:億速云 閱讀:176 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關swoole學習之異步Mysql,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

swoole學習之異步Mysql

官方示例:

$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();
    });});

常用函數:

connect($config, $callback) 連接數據庫
$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 主機ip地址

  • port端口號,默認3306

  • user用戶名

  • password密碼

  • database選擇的數據庫

  • charset設置客戶端字符集

  • timeout 連接超時時間,默認1.0

$callback回調函數function($db, $result )

  • $db swoole_mysql的對象

  • $result 返回值 , 為true的時候才能執行query , 為false的時候 , 可以通過$db->connect_errno$db->connect_error獲取錯誤碼和錯誤信息

query($sql, $callback) 執行sql語句
$sql = "select * from test ";$db->query($sql,function($link,$result){});

$sql為要執行的SQL語句
$callback回調函數
每個MySQLi連接只能同時執行一條SQL,必須等待返回結果才能執行下一條SQL

回調函數function($link,$result)

  • 當SQL執行失敗即$result == false的時候,通過$link->error可獲得錯誤信息,$link->errno獲得錯誤碼

  • 執行成功,$result == true ,通過$link->affected_rows獲得受影響的行數 , $link->insert_id獲得insert操作的自增ID

  • 執行成功 且SQL為查詢語句的時候, $result返回的是查詢結果數組

close關閉連接
 $db->close();

將整個SQL連接關閉

on($event_name,$callback) 回調函數

目前swoole_mysql只有一個onClose回調函數

//mysql連接關閉時,自動觸發$db->on('close',function($db){
	echo "mysql connection is closed";});

swoole_mysql中的事物

在官方文檔中有詳細介紹:

begin(function($db,$result))開啟事物
  • 啟動一個MySQL事務,事務啟動成功會回調指定的函數

  • commitrollback結合實現MySQL事務處理

  • 同一個MySQL連接對象,同一時間只能啟動一個事務

  • 必須等到上一個事務commit或rollback才能繼續啟動新事務

  • 否則底層會拋出Swoole\MySQL\Exception異常,異常code21

commit($callback)提交事物
  • 提交事務,當服務器返回響應時回調此函數

  • 必須先調用begin啟動事務才能調用commit否則底層會拋出Swoole\MySQL\Exception異常

  • 異常code22

rollback($callback)事物回滾
  • 必須先調用begin啟動事務才能調用rollback否則底層會拋出Swoole\MySQL\Exception異常

  • 異常code22

官方示例:

$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";
        });
    });});

關于“swoole學習之異步Mysql”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黎平县| 崇阳县| 昌邑市| 道真| 甘德县| 大悟县| 曲水县| 柘城县| 九寨沟县| 华亭县| 喜德县| 新晃| 商洛市| 奇台县| 垣曲县| 兰考县| 普陀区| 高尔夫| 万宁市| 宜丰县| 锡林浩特市| 织金县| 墨竹工卡县| 永春县| 安丘市| 米林县| 嵊泗县| 井研县| 巩义市| 黄浦区| 竹山县| 无为县| 东乡族自治县| 门头沟区| 贵阳市| 浑源县| 潼关县| 灵台县| 广德县| 如东县| 龙岩市|