You say eether and I say eyether,
You say neether and I say nyther;
Eether, eyether, neether, nyther -
Let''''s call the whole thing off !
You like potato and I like po-tah-to,
You like tomato and I like to-mah-to;
Potato, po-tah-to, tomato, to-mah-to -
Let''''s call the whole thing off !
我喜欢这首歌,尤其是Louis Armstrong 和Ella二重唱的版本。这首歌说的是恋
爱中的两个人要和谐相处是多么难。它说的也是一种妥协和寻找共同点。这也是这篇
文章所要说的。
使用PHP创建动态Web站点,你将有最少的烦恼和最多的乐趣。创建这些Web站点的
时候,我们需要使用数据库来获取登录信息,在网页上发布动态新闻和保存论坛帖子。
因此我们会说我们正在使用流行的MySQL数据库来完成这些工作。然而你的公司做了一
项如此不可思议的工作,以至于你们公司的网站受欢迎的程度远大于你当初最大胆的
估计。你发现MySQL无法扩展到能处理如此大的工作量,是该更换数据库的时候了。
不幸的是在PHP中访问不同数据库的方式都稍有不同。要连接到MySQL,你要使用
mysql_connect(); 当你决定升级到Oracle或者Microsoft SQL Server时,你要分别
使用ocilogon()和 mssql_connect();更糟糕的是你在不同连接函数里使用的参数也
各不相同…….一个数据库说po-tato,另一个数据库说pota-to.哦-哦。
让我们不要放弃整个工作
当你需要保证可移植性的时候,一种像ADODB这样的数据库包装库(database wrapper library)
已经出现了。它提供统一的API来和任何它支持的数据库进行连接,因此你不必放弃整
个移植升级工作。
ADODB 代表 Active Data Objects DataBase (不好意思,计算机小子有时也不是
十分有创意). ADODB 目前支持 MySQL, PostgreSQL, Oracle, Interbase, Microsoft
SQL Server, Access, FoxPro, Sybase, ODBC 和 ADO. 你可以从http://php.weblogs.com/adodb.
下载ADODB
MySQL 例子
和PHP一起使用的最常见的数据库是MySQL, 因此我猜你应该很熟悉下面的代码。它连
接到位于localhost的MySQL服务器上的mydb数据库,并执行一条SQL查询声明。查询
结果将打印出来,查询结果中每条记录显示成一行。
$db = mysql_connect("localhost", "root", "password");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
if ($result === false) die("failed");
while ($fields = mysql_fetch_row($result)) {
for ($i=0, $max=sizeof($fields); $i < $max; $i++) {
print $fields[$i].'''' '''';
}
print "<br>\n";
}
上面的代码分段设置了颜色。第一段是连接阶段。第二段是SQL的执行。最后一段
显示字段值。while 循环扫描结果中的每一行,而for 循环扫描每一列的各个字段。
下面是在ADODB里有同样作用的代码:
include("adodb.inc.php");
$db = NewADOConnection(''''mysql'''');
$db->Connect("localhost", "root", "password", "mydb");
$result = $db->Execute("SELECT * FROM employees");
if ($result === false) die("failed");
while (!$result->EOF) {
for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
print $result->fields[$i].'''' '''';
$result->MoveNext();
print "<br>\n";
}
现在改成要连接到Oracle数据库只需简单的把第二行改为NewADOConnection(''''oracle'''')
就可以了。让我们仔细看看这段代码…
连接到数据库
include("adodb.inc.php");
$db = NewADOConnection(''''mysql'''');
$db->Connect("localhost", "root", "password", "mydb");
这段连接代码比MySQL的那段更精致一些。在ADODB中,我们使用面向对象的方法来管理
连接多种数据库的复杂性。我们有不同的类来处理不同的数据库。如果你不熟悉面向对
象编程,不要急-所有这些复杂操作都被隐藏在NewADOConnection()函数里了。
为了节省内存,我们只加载你要连接的特定数据库的PHP代码. 我们通过调用
NewADOConnection(databasedriver)函数来实现这个功能
. 合法的数据库驱动包括
mysql, mssql, oracle, oci8, postgres, sybase, vfp, access, ibase 和其它等等。
这样我们通过调用NewADOConnection()创建connection类的一个新的实例。最后我们用
$db->Connect()来连接数据库.
[1] [2] 下一页
[Web开发]使用XMLHttp和ADODB.Stream取得远程文件并保存到本… [Web开发]ASP中利用ADODB.Stream对象将字节流转换为字符流
[Web开发]指南:从MySQL转向ADODB(2) [Web开发]面向对象的asp编程之五--adodb的类封装
[Web开发]PHP技巧--通过COM使用ADODB [Web开发]adodb Stream 详细用法
[Web开发]MMCACHE+PHP5+ADODB出现内存溢出的问题 [Web开发]smarty+adodb+部分自定义类的php开发模式
[Web开发]利用VBScript及ADODB.Steam获取部分格式图象长宽 [Web开发]adodb Stream 详细用法 选择自 3cts 的 Blog