匿名PHP/mysqli-pdo-bridge

使您的应用程序兼容PDO。这个库允许您使用mysqli连接与PDO接口。

1.1.14 2018-06-21 14:08 UTC

This package is auto-updated.

Last update: 2024-09-08 01:25:17 UTC


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。