PHP数据库开发-在不同的数据库连接方式中选择

PHP 数据库开发 - 在不同的数据库连接方式中选择
1 Apache/php 的配置参见前面文章
2 Dbg 调试和 Zend Debugger 调试不能同时执行,即 php.ini 中不能同时启用,切换 Zend Studio PhpED 开发工具是,必须切换相应的 debugger 配置。
PHP 连接数据库包括四种连接方式
1、  函数调用
2、  对象调用方式
3、  Perl DB
4、  主流数据库抽象层介绍(供参考) [ 本节内容来自“ PHP5 MySQL5 Web 开发技术详解 ]
1 种方式不再推荐使用,笔记 OOP 方式已经成为主流,虽然 PHP5 向后兼容。
Pear DB- 这是一个以 PEAR 为基础的数据库抽象层;虽然 PHP 已经有内建的数据库函式,不过功能有限,而且不容易转移平台。例如通常连接 MySQL 的函式是 mysql_connect() ,而 PostgreSQL 则是 pg_connect() ,虽然你大可将 mysql_[x] 改成 pg_[x] ,不过如果你的数据库抽象层的源码超过 500 行的话这将是一个恶梦!如果你的数据库函式是散布在你的源码,那就更恐怖了。所以,这时候需要有一个跨平台的数据库界面抽象层来为你完成大部分的工作,包括连接, query update 等等,而且还需要提供 debug 的功能。 PEAR DB 正是一个这样的工具,提供多种平台包括 dbase, Frontbase, InterBase, Informix, MiniSQL, MSSQL, MySQL, Oracle, ODBC, PostgreSQL, SQLite, Sybase PEAR DB 可以完全作为一个 PHP 程序的数据库层,而且速度也很理想(当然不比直接用 mysql_query 来得快,不过在大型的程序中可以凸现它的效果),所有的功能都包含在三个类型中,用法也很简单。
包括Pear DB ,目前,有4 种主流数据库抽象层:Metabase PEAR:DB PDO ADODB 。从目前的应用来看,ADODB PEAR:DB 最受欢迎(因为PEAR 是被捆绑在PHP 目录中的,但PEAR:DB 的效率问题一直引人诟病)。
PHP 5 开始出现的PDO ADODB (其中包括PDO MySQLi 的底层实现)已经逐渐普及。
也有一些更新的抽象类值得一用,PEAR:MDB (现在的版本名称为PEAR:MDB2 )已经将Metabase PEAR:DB 合并,并且效率较之从前有很大的提高。

函数调用

<?php
$link=mysql_connect('localhost','root','root', 'test');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>

对象调用

<?php
$mysqli = new mysqli("localhost", "root", "root","test");
 
if (mysqli_connect_errno()) {
    die("mysqli_connect failed: " . mysqli_connect_error());
}
print "connected to " . $mysqli->host_info . "\n";
$mysqli->close();
?>

使用Pear DB

关于Pear

PEAR PHP Extension and Application Repository PHP 扩展与应用库)的缩写。 PEAR PHP 用户提供了一套基本类库,在编写 PHP 程序时通过调用相关的 PEAR 类可以简化我们的工作量。举个很简单的例子,比如我在程序中想把数据库中的数据通过 Web 页面的条件设定,抽取相应的数据转存到 Excel 表格里。要完成这个任务,在以前可不是很容易办到的,还好现在有了 PEAR ,通过调用 PEAR 里面的 Spreadsheet 类,我们可以在很短的时间实现对 Excel 的写操作。长话短说,还是开始尽快我们的 PEAR 安装之旅吧。

安装PearPear DB(确保计算机联上互联网)

1 、安装 Pear
在命行下到 php 目录下 ( d:\myamp\PHP5.2.9 ) ,运行 go-pear.bat (其内容其实为 cliphp.exe -d output_buffering=0 PEARgo-pear.php ) 它会给你安装 pear 命令和安装一些 pear 包,此包内不含 db 模块;
安装过程:
 
2 、安装 Pear DB
步骤 1 执行完成之后, pear 会安装在 d:\myamp\PHP5.2.9 目录,在命令行进入该目录,运行:
pear install db
5、  确认 d:\myamp\Apache2.2\bin\php.ini 配置文件的 include_path 包含 pear 路径
include_path = ".;D:\myamp\PHP5.2.9\PEAR; "

使用Pear DB访问数据库

<?php
// 需要安装 pear db
require_once 'DB.php';
 
$dbh = DB::connect("mysql://root:root@localhost/test");
 
if (DB::isError($dbh)) {
    print "Connect failed!\n";
    print "Error message: " . $dbh->getMessage() . "\n";
    print "Error details: " . $dbh->getUserInfo() . "\n";
    exit(1);
}
print "Connect ok!\n";
?>
-------------------------------------------------- 以下内容供参考 ----------------------------------------------

4、主要数据库抽象层介绍

4.1  PEAR:DB
PEAR:DB 2001 年以来,存在于 PEAR 中,由于 PEAR 默认绑定在 PHP 目录中,基于这些原因,成为比较流行的数据库抽象层。 PEAR:DB 所支持的数据库系统包括:
Ø  Firebird
Ø  Interbase
Ø  Informix
Ø  mSQL
Ø  MS SQL Server
Ø  MySQL
Ø  Oracle
Ø  ODBC
Ø  PostgreSQL
Ø  SQLite
Ø  Sybase
PEAR:DB 的下载地址: [url]http://pear.php.net/package/DB/download[/url]
4.2  ADODB
ADODB Active Data Objects DataBase ),起源于 2000 年,到目前为止仍然在增强与更新,发展至今仍然是一个热门的数据抽象层。
ADODB 的开发初衷,源于很多从 Microsoft ASP ADO 转过来的工程师,很多用法与 MS ADO 非常相像,目前使用 ADODB 的流行软件,例如 egroupware Mambo 等均采用 ADODB
ADODB 的数据库封包程序库提供了共通的应用程序界面来跟所有支持的数据库沟通,值得一提的是,它除了支持 PHP ,还支持 Python 语言。
ADODB 提供很多实用的方法,使它超越了一个抽象层的功能,如具有表格化和数据库缓存等非常好的特性。 ADODB 支持的数据库系统包括:
Ø  Access
Ø  ADO
Ø  DB2
Ø  Firebird
Ø  FoxPro
Ø  FrontBase
Ø  Informix
Ø  Interbase
Ø  LDAP
Ø  MS SQL Server
Ø  MySQL
Ø  ODBC
Ø  Oracle
Ø  PostgreSQL
Ø  SAP DB
Ø  SQLite
Ø  Sybase
另外,因为 ADODB 的逐渐发展,特性增强,使得本身体积过大,为此 ADODB 开发团队还提供了基本功能的 ADO Lite
4.3  Metabase
Metabase Manuel Lemons 开发。 Metabase 已被誉为慢抽象层,但是它支持 PHP 的全部版本,也是目前提供最大的可移植性设计的唯一抽象层。目前支持的数据库系统包括:
Ø  Access
Ø  Informix
Ø  Interbase
Ø  mSQL
Ø  MS SQL Server
Ø  MySQL
Ø  ODBC
Ø  Oracle
Ø  PostgreSQL
Ø  SQLite
下载地址: [url]http://www.phpclasses.org/browse/package/20.html#download[/url]
4.4  MDB
SCMV-MDB 的性能介于和融合 PEAR:DB Metabase 数据库抽象层之间,它的初衷就是试图改善性能和最大可移植性。稳定版于 2004 4 月发布。
MDB 目前支持的数据库系统包括:
Ø  Firebird
Ø  Frontbase
Ø  Interbase
Ø  MS SQL Server
Ø  MySQL
Ø  Oracle
Ø  PostgreSQL
Ø  Querysim
PEAR:MDB 下载地址: [url]http://pear.php.net/package/MDB/download[/url]
4.5  MDB2
PEAR:MDB2 Metabase/PEAR:DB 合并,并在 SCMV-MDB 的基础上进一步巩固,以及去除不必要的冗余工作。另外,它还整合了与 PDO 的接口。
PEAR:MDB2 目前支持的数据库系统包括:
Ø  Firebird
Ø  Frontbase
Ø  Interbase
Ø  MS SQL Server
Ø  MySQL
Ø  Oracle
Ø  PostgreSQL
Ø  Querysim
Ø  SQLite
PEAR:MDB2 下载地址: [url]http://pear.php.net/package/MDB/download[/url]
4.6  Creole
Creole 是基于 Java JDBC 技术,在某种程度上是 PEAR:DB PEAR: MDB2 ADODB 的结合体。
Creole PHP 5 上较新的数据抽象层,与 PHP 4 不兼容。 Creole 提供充分的面向对象开发的 API ,以及 PHP 5 的异常处理机制。
Creole 目前支持的数据库系统包括:
Ø  MySQL
Ø  MS SQL Server
Ø  Oracle in progress
Ø  PostgreSQL
Ø  SQLite
Creole 库的下载地址: [url]http://creole.phpdb.org/wiki/index.php?node=2[/url]
4.7  PDO
PDO 数据抽象层是随着 PHP 5.1 推出的, PDO 使用 C 语言编写,因为是与 PHP 同级的 API ,所以它的执行速度快。 PDO 目前支持的数据库系统包括:
Ø  Firebird
Ø  FreeTDS
Ø  Interbase
Ø  MySQL
Ø  MS SQL Server
Ø  ODBC
Ø  Oracle
Ø  PostgreSQL
Ø  SQLite
Ø  Sybase
PDO 必须运行在 PHP 5.1 及以上版本上。
 
4.8  PHPLib
到目前为止, PHPLib 已经使用了近 6 年,只是因为它曾经是非常受欢迎的数据库类,它在设计时并不是一个数据库抽象层,而只用于概括连接串、查询和处理错误和封装。
因为它小巧方便,加载速度快,现在使用这个类作为数据库层查询的 PHP 项目也为数不少。 PHPLib 的官方网站为: [url]http://phplib.sf.net[/url]

你可能感兴趣的:(PHP,数据库,DB,新手,PEAR)