unreal4u/dbmysqli

此包已被弃用且不再维护。未建议替代包。

Mysqli 包装器

v4.1.4 2013-12-27 23:52 UTC

This package is auto-updated.

Last update: 2024-02-09 14:18:08 UTC


README

重要:已弃用

请永远不要使用此代码...现在有很多更好的选择。我还会存档此存储库。

致谢

此类由 unreal4u (Camilo Sperberg) 制作。 http://unreal4u.com/。然而,最初的构想并非我的,因此我想感谢 Mertol Kasanan,此类基于他的工作。有关详细信息,请参阅 http://www.phpclasses.org/browse/package/5191.html

关于此类

  • 它接收参数化简单 SQL 查询。
  • 它创建 3 个数组:一个包含所有数据,另一个包含一些统计信息。可选地将所有错误记录到另一个数组以及一个有效的 XML 文件中。
  • 数据库连接是单例,这意味着即使您有多个实例,您的所有查询也仅建立了一个连接。连接是在需要时建立的,而不是在初始化类时。

详细描述

此包实现了一个使用 MySQLi 扩展的 MySQL 数据库访问包装器。

有一个类用于管理 MySQL 数据库访问连接,因此在同一 PHP 脚本执行期间只建立一个连接。

另一个类实现了其他数据库访问功能,例如使用预处理查询执行查询,测量查询执行时间以及内存使用情况,将查询结果检索到数组中,结果行数,最后插入记录标识符以及将执行查询记录到有效的 XML 日志文件或直接到您的页面中。

如果查询执行时间太长,您可以将查询结果缓存到 XML 文件中,并也可以处理错误。

此包已与 xDebug、APC 和 Suhosin 广泛测试,以确保不存在错误。

基本用法

include('src/unreal4u/config.php'); // Please see below for explanation
include('src/unreal4u/dbmysqli.php');
$dbLink = new unreal4u\dbmysqli();
$id_user = 23;
$username = 'unreal4u';
$aResult = $dbLink->query('SELECT id,username FROM users WHERE id = ? AND username = ?',$id_user,$username);
foreach($aResult AS $a) {
  echo 'The id of the user named '.$a['username'].' is: '.$a['id']."\n";
}
  • 恭喜!$aResult 包含您的查询结果!
  • 在大型查询的情况下,不要忘记取消设置结果以节省内存:unset($aResult);
  • 请参阅 index.php 以获取更多选项和高级用法

使用 composer 包含

将此添加到您的 composer.json 中

{
   "require": {
       "unreal4u/dbmysqli": "@stable"
   }
}

现在,您可以执行以下操作来创建一个新的 dbmysqli 类实例:

require('vendor/autoload.php');

$rutverifier = new unreal4u\dbmysqli();

待定

  • 多查询支持。
  • 更好的命名约定,以供将来包含其他 RDSMs。
  • 转换为 PDO(以支持 :tag 类型关联)

版本历史

  • 4.0.0:

    • 不再使用基于 XML 的缓存,现在由 cacheManager 类(见我的其他类)负责完成所有这些工作!
    • 更好的异常处理。
  • 4.0.1:

    • 支持多连接。
    • 更好的文档。
    • 代码清理和一些小改进。
  • 4.1.0:

    • 使类兼容 composer.phar 和 PSR-0 自动加载标准
    • 文档和代码中的一些小修复
  • 4.1.1:

    • 修复
    • 更好的文档。
  • 4.1.2:

    • 完全忘记了 PSR-0 下划线标准。现在类已经重构,删除了类名中使用下划线
  • 4.1.3:

    • 更好的文档。
    • 年份更改
  • 5.0.0:

    • 代码的重大修改和几个修复,更新以符合(至少)PSR-2
    • [BC] 结果数组现在是 SplFixedArray,占用的内存更少,应该也会更快一些
    • [BC] 支持更多类型:现在返回 float 和 DateTime 对象用于这些类型的数据
    • [BC] 所有方法和变量都采用驼峰式命名法
    • [BC] 类现在在其适当命名空间中抛出异常
      • unreal4u\databaseException 现在是 unreal4u\exceptions\database
      • unreal4u\queryException 现在是 unreal4u\exceptions\query
    • 修复并更新了文档

联系作者