Untitled Document

phplib

回目录上一页下一页

 

五.如何使用phplib数据库驱动(一)
第一部份:数据库连接/查询

a.四步曲:

【ChinaByte 教程】1.要根据库中的DB_Sql来编写一个类,这个只需要在你的顶层包含文件中定义好就行了,同一个程序使用时不需要重定义,例子是:

class slashDB extends DB_Sql
  {
var $classname="slashDB";
/**** Remember to change the below items to match your db *****/
var $Host = "localhost";
var $Database = "abc";
var $User = "abc";
var $Password = "abc";

function halt($msg){
printf("数据库出现错误!: %s \n", $msg);
printf("MySQL 错误!: %s (%s) \n", $this->Errno, $this->Error);
printf("请联系WebMaster并报告此出错信息得详细内容。\n ");
die("Session 挂起。");
          }
}

其中slashDB的名字是任意的,根据编程者的喜好设定,不过都建议用extends语句生成的类的名字 最好都有DB两个字。例如userDB,slashDB。并且$classname要和class slashDB extends DB_Sql中 slashDB一样!否则类定义出错。其他需要修改的仅仅是类的名字,$classname,$Host,$Database ,$User,$Password等需要修改。函数halt是错误提示。你可以自定义到一个页面。

2.使用编写好的类的时候,用new关键字 $abc = new slashDB; 其中$abc是个变量名,这代表你要使用slashDB类的功能。

3.查询数据库

一般有2个方法,短的查询直接将语句写到函数,长的就先用一个变量分别储存再查询。

a. 短语句:

$abc->query("SELECT * FROM user WHERE username='kk' AND passwd='kk' ");

注意的是这里是一个调用slash类中的方法query,并且数据库查询语句不能漏了" ",否则出错。

b.长语句

$q = "SELECT username,passwd,email,nation,url,edulev";
$q .= ",seclev FROM user WHERE username='$username' ";
$q .= "AND aid='$aid' ORDER BY ID DESC";
$abc->query($q); //这里才执行查询

采用了短语句合成长语句的方法。其中需要注意的是第一个$q是起始的语句,不能跟“.”号!

接着同名的$q就是需要和第一个$q合成的变量,其实是同一个变量但是分别赋一个长语句的不同 部分。因为为了避免互相覆盖就用“.”号!!切记切记!

另外查询语句中该有空格的必须有空格,即使该行没有,下一行也必须有。例如$q .= ",seclev FROM user WHERE username='$username' ";句中最后有一个空格如果他没有,而接着的行开头没有的话,数据库查询会出错的。

4.取得结果

$abc->next_record();

这个是一个没有返回值的语句,他只会让Record[];这个方法产生相应的查询 结果。如果没有这句话就不会产生相应的结果。next_record()是将当前指针向前移动并更新Record 、Error、Row、Errno的函数。因此不运行他一定不能够产生你需要的结果。

$temail = $abc->Record["email"];
$turl = $abc->Record["url"];

这几句就是将查询后的结果赋值给指定的变量。

注意:一般如果返回的row超过一行,你就要用习惯方法: while($abc->next_record()) { php代码 } 来进行处理了。这个方法就是便历了所有查询到的结果。


回目录 上一页 下一页

本书由类出版物”制作出品
获得更多免费电子图书和电子图书制作工具请访问
http://www.epubcn.com