技术开发 频道

用PHP的PEAR DB模块编写数据库脚本

  四、引用PEAR DB

  使用任何一种PEAR DB调用之前,我们的脚本必须先引入DB.php文件。假定我们的Include_path已经设置了PEAR安装目录的名称,则可以像下面这样来引用这个文件:

require_once "DB.php";

   实际上,我们可以使用任何一种文件包含语句,例如include语句或require语句皆可,但是require_once语句能够防止脚本中的其它用到DB.php的文件重复引入该文件。

  五、连接MySQL服务器

  为了连接到MySQL服务器,必须规定一个存放连接参数的数据源名称(DSN)。这个DSN是一个URL式样的字符串,用以表明数据库驱动程序(对于mysql扩展来说是mysql;对于“mysql improved”扩展来说则是mysqli),运行该服务器的主机名,访问您MySQL帐户的用户名和密码,以及想要使用的数据库的名称。DSN的一般语法如下所示:

mysqli://user_name:password@host_name/db_name

   本文使用了mysqli驱动程序为例进行讲解。如果您想使用更旧的mysql驱动程序的话,可以把本文中的mysqli替换为mysql即可。

  该DSN会传递给DB类的connect()方法,举例来说,若要连接到本地主机上的MySQL服务器的测试数据库,用户名和密码为testuser和testpass,则可以使用下面的代码进行连接:

$dsn = "mysqli://testuser:testpass@localhost/test";
   $conn
=& DB::connect ($dsn);
  
if (DB::isError ($conn))
     die ("Cannot connect: " . $conn
->getMessage () . "\n");

   如果connect()调用失败,$conn会指向一个错误对象,所以在退出之前可以利用该对象打印相应的出错信息。如果connect()调用成功,$conn指向一个连接对象,我们可以通过该对象提交语句,直到关闭该连接为止。注意,一定要检查connect()调用的结果,否则,如果返回值指出调用失败了,您还尝试用它来提交语句的话,只能得到更多的错误信息。一个替代处理错误的方法是,当PEAR 发生错误的时候让PEAR自动地终止脚本。这会在后面详细介绍。

  规定连接参数的另一种方法是将参数放到一个单独的文件中,然后从脚本中引用该文件即可。举例来说,您可以建立一个文件,将其命名为testdb_params.php,其内容如下所示:

<?php
   #用于连接数据库test的参数
   $driver
= "mysqli";
   $
user = "testuser";
   $password
= "testpass";
   $host
= "localhost";
   $db
= "test";
   #用参数构造的DSN
   $dsn
= "mysqli://testuser:testpass@localhost/test";
   ?
>

   然后,把这个文件包含到我们的脚本中,这样就可以使用从连接参数构造的$dsn变量了,如下所示:

require_once "testdb_params.php";

   $conn
=& DB::connect ($dsn);
  
if (DB::isError ($conn))
     die ("Cannot connect: " . $conn
->getMessage () . "\n");

  在不同的脚本中使用相同的参数时,这种方法格外简便,因为它无需将这些值分别插入各个脚本中;如果参数需要修改的话,只需改动testdb_params.php文件即可。它还使您可以把该参数文件传送到Web服务器文档树之外,也就是说,即使服务器配置出错而把PHP脚本本身作为响应返回给客户端,参数的字面值也不会显示出来。

0
相关文章