shuchkin/react-mysqli

为 React.PHP 提供的异步和非阻塞 MySQL 驱动程序

0.1.11 2020-12-06 22:03 UTC

This package is auto-updated.

Last update: 2024-09-07 07:02:03 UTC


README

ReactPHP 提供的异步和非阻塞 MySQLi 驱动程序。

需要 php-mysqlnd 扩展

安装

composer require shuchkin/react-mysqli

连接和选择

$loop = \React\EventLoop\Factory::create();

$db = \Shuchkin\ReactMySQLi\Client::connect($loop, 'localhost', 'root', '', 'my_db' );

$db->query('SELECT id,name,email FROM user')->then(
    function (\Shuchkin\ReactMySQLi\Result $result) {
        print_r( $result->all() );
    },
    function ( \Exception $ex ) {
        trigger_error( $ex->getMessage() );
    }
);
$loop->run();
Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [name] => Gianni Rodari
            [email] => gianni.rodari@example.com
        )

    [1] => stdClass Object
        (
            [id] => 2
            [name] => Rikki-Tikki-Tavi
            [email] => mangoose@example.com
        )

)

插入

$db->query("INSERT INTO user SET name='Sergey',email='sergey.shuchkin@gmail.com'")->then(
    function (\Shuchkin\ReactMySQLi\Result $result) {
        print_r($result->insert_id); // 12345
    },
    function ( \Exception $ex ) {
        trigger_error( $ex->getMessage() );
    }
);

更新

$db->query("UPDATE user SET email='sergey@example.com' WHERE id=12345")->then(
    function (\Shuchkin\ReactMySQLi\Result $result) {
        print_r($result->affected_rows);
    },
    function ( \Exception $ex ) {
        trigger_error( $ex->getMessage() );
    }
);

删除

$db->query('DELETE FROM user WHERE id=12345')->then(
    function (\Shuchkin\ReactMySQLi\Result $result) {
        print_r($result->affected_rows);
    },
    function ( \Exception $ex ) {
        trigger_error( $ex->getMessage() );
    }
);