amphp/mysql

基于Amp的异步MySQL客户端

维护者

详细信息

github.com/amphp/mysql

源代码

问题

资助包维护!
amphp

v3.0.0 2024-03-10 17:33 UTC

README

AMPHP是一组针对PHP设计的事件驱动库,考虑到纤维和并发。 amphp/mysql 是一个异步MySQL客户端。该库通过透明地在可用的连接池中分配查询来实现并发查询。客户端通过100%的用户空间PHP透明地将这些查询分配到可扩展的连接池中;没有外部扩展依赖(例如 ext/mysqliext/pdo 等)。

功能

  • 提供非阻塞API以并发执行多个MySQL查询
  • 透明连接池以克服MySQL的基本同步连接协议
  • 支持MySQL传输编码(gzip,TLS加密)
  • 支持参数化预编译语句
  • 具有提交和回滚事件挂钩的嵌套事务
  • 无缓冲结果以减少大型结果集的内存使用
  • 完全 支持MySQL协议,包括所有可用的异步命令 所有

† 如官方MySQL内部手册中所述 官方MySQL内部手册

安装

此包可以作为 Composer 依赖项安装。

composer require amphp/mysql

要求

  • PHP 8.1+

用法

更详细的代码示例位于 examples 目录中。

use Amp\Mysql\MysqlConfig;
use Amp\Mysql\MysqlConnectionPool;

$config = MysqlConfig::fromString(
    "host=localhost user=username password=password db=test"
);

$pool = new MysqlConnectionPool($config);

$statement = $pool->prepare("SELECT * FROM table_name WHERE id = :id");

$result = $statement->execute(['id' => 1337]);
foreach ($result as $row) {
    // $row is an associative-array of column values, e.g.: $row['column_name']
}

版本控制

amphp/mysql 遵循类似于所有其他 amphp 包的 semver 语义版本规范。

安全性

如果您发现任何安全问题,请使用私人安全问题报告者,而不是使用公共问题跟踪器。

许可

MIT许可证(MIT)。有关更多信息,请参阅 LICENSE