匿名PHP / mysqli-pdo-bridge
使您的应用程序兼容PDO。这个库允许您使用mysqli连接与PDO接口。
1.1.14
2018-06-21 14:08 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ^5
README
这个库允许您使用mysqli连接与PDO接口。不提供额外的包装器或方法。
示例
新建连接
<?php use \Anonymous\MysqliPdoBridge\MysqliPDO; use \Anonymous\MysqliPdoBridge\MysqliPDOStatement; $pdo = new MysqliPDO('mysql:host=127.0.0.1;dbname=test', 'test', 'test'); /** @var MysqliPDOStatement $stmt */ $stmt = $pdo->prepare('SELECT * FROM test WHERE id = :id LIMIT 1'); $stmt->execute(array(':id' => 1)); $result = $stmt->fetch(\PDO::FETCH_ASSOC);
现有连接
<?php use \Anonymous\MysqliPdoBridge\MysqliPDO; /** * @var \mysqli $mysqli */ $pdo = MysqliPDO::withConnection($mysqli); // or $pdo = new MysqliPDO($mysqli);
获取连接
<?php use \Anonymous\MysqliPdoBridge\MysqliPDO; /** * @var MysqliPDO $pdo */ $mysqli = $pdo->getConnection();
安装
composer require anonymous-php/mysqli-pdo-bridge
错误报告
错误报告模式实现与PDO相同,但错误代码和消息属于Mysqli。
实现的PDO获取模式
- PDO::FETCH_BOTH
- PDO::FETCH_ASSOC
- PDO::FETCH_NUM
- PDO::FETCH_COLUMN
- PDO::FETCH_CLASS
- PDO::FETCH_OBJ
- PDO::FETCH_FUNC
- PDO::FETCH_INTO
- PDO::FETCH_BOUND
实现的PDO选项(属性)
- PDO::ATTR_ERRMODE (PDO::ERRMODE_SILENT, PDO::ERRMODE_WARNING 或 PDO::ERRMODE_EXCEPTION, 默认为 PDO::ERRMODE_SILENT)
- PDO::ATTR_AUTOCOMMIT (true 或 false, 默认为 true)
- PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (true 或 false, 默认为 true)
- PDO::ATTR_DEFAULT_FETCH_MODE (查看实现的获取模式)
- PDO::MYSQL_ATTR_INIT_COMMAND (仅适用于新连接)
- PDO::ATTR_PERSISTENT (true 或 false, 默认为 false)
- PDO::ATTR_CONNECTION_STATUS (只读,错误时为 null)
可能的问题
- 稳定性
- 性能
- 特殊的获取模式
- 游标
待办事项
- 将插入时的“重复记录”错误映射到PDO代码
- debugDumpParams 方法
- 测试
- 文档
为什么?
我们有一个庞大的遗留项目,使用mysqli,我们希望重构,但我们仍然在几个节点上使用PHP 5.5。