ホームページ > 記事 > PHPフレームワーク > 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(); });});
推奨 (無料):swoole
よく使用される関数:
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));
ホスト IP アドレス
コールバック関数function($db, $result)
query
の場合にのみ実行できます。false
の場合は、$db->connect_errno を通じて実行できます。
and$db->connect_error
エラー コードとエラー情報の取得
$sql = "select * from test ";$db->query($sql,function($link,$result){});
$sql$callback
コールバック関数
各 MySQLi 接続は同時に 1 つの SQL ステートメントのみを実行できます。 SQLcallback function
function($link,$result)
SQL 実行時失敗、つまり
、
$link->errno# を通じて取得できます。 ## エラー コードを取得できます。
実行は成功しました。$result = = true
、$link->insert_id
insert
操作の自動インクリメントを取得します。ID
が正常に実行され、SQL がクエリ ステートメントである場合、$result
クエリ結果の配列を返します
close$db->close();
コールバック関数
現在
swoole_mysqlonCloseコールバック関数
//mysql连接关闭时,自动触发$db->on('close',function($db){ echo "mysql connection is closed";});は1つだけです
swoole_mysql の内容
## は公式ドキュメントで詳しく説明されています:
begin(function($db,$result))Open things
MySQL
transaction.トランザクションが正常に開始されると、コールバックで指定された関数 rollback
を使用して
同じ MySQL
接続オブジェクト。同時に開始できるトランザクションは 1 つだけです
新しいトランザクションの開始を続けるには、前のトランザクション rollback
が完了するまで待つ必要があります。 例外。例外
code は
21
##commit($callback )トランザクションをコミットします
トランザクションを送信します。サーバーが応答を返すと、この関数が呼び戻されます。Exception
Things rollback
ロールバックを呼び出す前に、まず begin を呼び出してトランザクションを開始する必要があります。そうしないと、最下層が 例外
コード
##公式例:$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を学習していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。