taq/pdooci

PHP PDO OCI 类的替代品

1.0.8 2020-08-17 10:56 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:19:00 UTC


README

通过使用纯PHP和oci_*函数,将PHP OCI函数包装成PDO对象。

让我们面对现实。安装PHP、PDO、Oracle驱动和PDO OCI不是一个愉快的事情。比起在指甲下插竹签,这更愉快。而且这有两个大问题。

  1. 如果你使用pecl安装pdo_oci,你会得到一个2005年的版本(http://pecl.php.net/package/PDO_OCI)。即使克里斯蒂安·贝尔现在也远离2005年的事物了,哇,他有一套很酷的衣服和一辆非常好的车。而且一切都是黑色的。

  2. 如果你遵循官方文档,你需要编译PHP,并且仍然会得到一个实验性扩展(https://php.ac.cn/manual/ref.pdo-oci.php)。看在上帝的份上。我们不可能(是的,我们知道怎么做!)在每个服务器上编译PHP,只是为了一个实验性特性?

这就是为什么我创造了PDOOCI。

安装

首先安装Oracle驱动程序(我喜欢即时客户端版本)和oci8软件包(使用pecl,这个版本似乎更新得很频繁)。

使用Composer

$ composer require taq/pdooci
{
    "require": {
        "taq/pdooci": "^1.0"
    }
}
<?php
require_once 'vendor/autoload.php';

$pdo = new PDOOCI\PDO("mydatabase", "user", "password");

不使用Composer

你为什么不用composer?下载repo中的src文件夹并将其重命名为PDOOCI,然后需要PDOOCI/PDO.php文件。

require_once "PDOOCI/PDO.php";

$pdo = new PDOOCI\PDO("mydatabase", "user", "password");

是的,其余部分应该和你使用PDO对象时完全一样。:-)

测试

test目录下有一个测试套件(使用大于6.x版本的PHPUnit)。如果你想测试(你必须测试你的代码!),创建一个名为people的表,包含两个列

  1. namevarchar2(50)
  2. emailvarchar2(30)

和一些环境变量

  1. PDOOCI_user包含数据库名称
  2. PDOOCI_pwd包含数据库密码
  3. PDOOCI_str包含数据库连接字符串

别忘了运行composer install

然后进入test目录,像这样运行PHPUnit

phpunit --colors .