PHP 开发中数据库及其相关软件的选型考虑

PHP 开发中数据库及其相关软件的选型考虑

PHP 版本各异,已经停止升级开发的有 4.0 系列的 4.4.x,但现在还有部分生产环境在跑这个版本,需要继续维护代码。PHP 5.0 系列是现在开发和应用的主流版本,有 5.1.x 和 5.2.x 系列。PHP 6.0 目前还是试用版本,用 PHP 开发软件产品的人现在可以预先作兼容性测试。

PHP 支持的数据库很多,包括 PHP 本身自带的数据库驱动组件,例如 mysql.dll、oci_oracle 等。PHP 从 5.1 版本以后正在力推其通用的数据库驱动组件 PDO,通过这个高度抽象的数据库存取组件,PHP 可以支持目前绝大多数数据库产品,而且这个数量还在增加,具有极大的扩展性。而第三方厂家很早就在开发 ADODB 数据库存取组件,现在仍然在继续进展中。

PHP 自身支持的数据库组件,目前最流行的是 MySQL 组件。PHP4.0 和 5.0 版本对 Oracle 的支持使用了不同的函数组,5.0 兼容 4.0,但函数名已经更换了。PHP4.0 用的是 OCILogon()、OCIParse()、OCIExecute()、OCIFetchInto()等函数。而 PHP5.0 用的是 oci_connect()、oci_parse、oci_bind_by_name()、oci_execute()、oci_fetch_all()等等函数,能看出来是向 MySQL 的函数命名靠拢。这些函数是用 C 语言对 PHP 进行扩展开发的,理论上效率最高,但也许因为资料缺乏等原因,使用的人似乎并不见多。其针对 Oracle 表的分页代码等,也比较复杂。

而 ADODB 组件和 Windows 下 ASP.NET 使用的 ADO 组件包装几乎是一模一样的,做过 ASP/ASP.NET + ACCESS/MS-SQLServer 开发的人应该似曾相识,很容易上手。所以,用 PHP 做 MS-SQLServer 或 oracle 开发,ADODB 应该是考虑之列。ADODB 对 PHP 的 4.0 和 5.0 版本均支持,而 PDO 仅仅支持 PHP 的 5.1 以上版本,这一点也应该考虑,做项目的问题不大,做产品的,就要考虑版本的适用性和软件的部署环境了。

一段 PHP 使用 ADODB 组件存取 Oracle9i 数据库的代码示例:

<?php

require_once(”adodb/adodb.inc.php”); //包含ADODB类库

$db = ADONewConnection(”oci8″); //指定Oracle8.0以上数据库

$db->Connect(”mydb9″, “scott”, “tiger”); //三个参数分别是数据库网络服务名、用户(方案)和密码

$rs = $db->Execute(”select * from emp”); //执行SQL语句

//取记录中的数据

while (!$rs->EOF)

{

echo $rs->fields[JOB] .’<br>’;

$rs->MoveNext();

}

?>