공식 예:
$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));
host
호스트 IP 주소connect($config, $callback)
连接数据库$sql = "select * from test ";$db->query($sql,function($link,$result){});
host
主机ip地址port
端口号,默认3306user
用户名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语句$db->close();
$sql
为要执行的SQL语句$callback
回调函数
每个MySQLi连接只能同时执行一条SQL,必须等待返回结果才能执行下一条SQL
回调函数function($link,$result)
$result == false
的时候,通过$link->error
可获得错误信息,$link->errno
获得错误码$result == true
,通过$link->affected_rows
获得受影响的行数 , $link->insert_id
获得insert
操作的自增ID$result
返回的是查询结果数组close
关闭连接//mysql连接关闭时,自动触发$db->on('close',function($db){ echo "mysql connection is closed";});
将整个SQL连接关闭
on($event_name,$callback)
回调函数目前
swoole_mysql
只有一个onClose
回调函数
$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中的事物
在官方文档中有详细介绍:
begin(function($db,$result))
开启事物MySQL
事务,事务启动成功会回调指定的函数commit
和rollback
结合实现MySQL
事务处理MySQL
连接对象,同一时间只能启动一个事务commi
t或rollback
才能继续启动新事务SwooleMySQLException
异常,异常code
为21
commit($callback)
提交事物SwooleMySQLException
异常code
为22
rollback($callback)
事物回滚SwooleMySQLException
异常code
为22
port
포트 번호, 기본값 3306user
사용자 이름password
Password
database
선택한 데이터베이스charset
클라이언트 문자 집합 설정
timeout
연결 시간 초과, 기본값 1.0🎜🎜$callback
콜백 함수 function($db, $result)
🎜$ db
swoole_mysql 객체 🎜$result
반환 값, query
는 true일 때만, false
일 경우에만 실행 가능 code> 의 경우 $db->connect_errno
및 $db->connect_error
🎜🎜🎜query($sql)를 통해 오류 코드 및 오류 정보를 얻을 수 있습니다. , $callback)
SQL 문 실행rrreee🎜$sql
은 실행할 SQL 문입니다.$callback
콜백 함수function($link,$result)
🎜$result == false
인 경우 $link->error
를 통해 오류 메시지를 얻을 수 있으며, 오류 코드는 $link->errno
🎜실행이 성공하고, $result == true
를 통해 가져옵니다. $link-를 통해 영향을 받은 행 수를 가져옵니다. >affected_rows
, $link->insert_id
code>삽입
작업의 자동 증가 ID를 가져옵니다🎜$result
는 쿼리 결과 배열을 반환합니다🎜🎜🎜close
연결 닫기rrreee🎜전체 SQL 연결 닫기🎜🎜on($event_name,$callback)
콜백 함수🎜현재rrreee🎜🎜 swoole_mysql 🎜🎜swoole_mysql
에는onClose
콜백 함수가 하나만 있습니다 🎜
🎜의 내용은 공식 문서에 자세히 설명되어 있습니다: 🎜🎜begin(function($db,$result))Open things
MySQL
트랜잭션을 시작합니다. 트랜잭션이 성공적으로 시작되면 지정된 함수가 다시 호출됩니다🎜 commit
및 롤백
하여 MySQL
트랜잭션 처리를 구현합니다🎜MySQL
연결 개체, 동시에 하나의 트랜잭션만 시작할 수 있습니다🎜commi
t 또는 rollback
될 때까지 기다려야 합니다.🎜SwooleMySQLException
예외가 발생합니다. , 예외 code
는 21
🎜🎜🎜commit($callback)
트랜잭션 커밋SwooleMySQLException
예외가 발생합니다🎜code
는 22
🎜🎜🎜rollback($callback)
사물 롤백SwooleMySQLException
예외가 발생합니다. 🎜code
는 22
🎜🎜🎜공식 예: 🎜rrreee🎜 위 내용은 Swoole 학습 비동기 MySQL의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!