PHP中 ADOdb 类库应用(二)

4   ADODB的查询方法

ADODB的查询方法如下。
4.1.直接查询

Excute()方法通过连接句柄执行SQL查询,并返回一个变量,如下:

$sql=’SELECT * FROM ice_cream WHERE flavor LIKE ?’;
$res = $cnx->Execute($sqlarray(‘Chocolate’));

4.2.缓存查询

ADODB提供内置的缓存机制,CacheExecute()方法用于每次查询数据时,会把相应的结果序列化后保存到文件中,以后同样的查询语句就可以不用直接查询数据库,而是从缓存文件中获取,从而提高Web系统的性能。CacheExecute()方法的格式如下

CacheExecute($ttc$sql)
该方法以缓存的形式执行一段查询,其中$ttc为缓存的时间,请看如下代码:

$ADODB_CACHE_DIR = “/var/tmp/adodb_cache”; //缓存保存的文件目录
$sql = “SELECT surname, age FROM employees”; //构造一个查询
$rs = &$db->CacheExecute(600,$sql);
//
缓存式查询,缓存将被保存600秒后更新

4.3.清除缓存CacheFlush()

该方法用来清除所有ADODB数据库的缓存。  

5、移动记录集

记录集(Record Set):从执行的方法中返回指定的记录,使用moveFirst()moveLast()moveNext()move($n)方法访问记录集中的一个指定记录。例如:

$rs=$cnx->Execute('SELECT flavor,price FROM ice_cream');
$rs->MoveLast
();
print
"Flavor ".$rs->fields[0].
" costs "
.$rs->fields[2]."\n"
;
$rs->MoveFirst
();
//省略...
$rs->Move(2
);
//省略...
$rs->MoveNext();

 

设置一个全局变量$ADODB_FETCH_MODE,从ADODB_FETCH_NUM(或从ADODB_FETCH_ASSOC返回)中取得数字索引(或关联索引)数组。例如:

 

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$rs=$cnx->Execute('SELECT flavor,price FROM ice_cream'
);
print
"<table>\n"
;
while (!
$rs->EOF
) {
    print
"<tr><td>".$rs->fields['flavor']}."</td>"
.
   
"<td>".$rs->fields['price']"."</td></tr>n
";
    $rs->MoveNext();
}
print "
</table>n";

FetchObject()方法也是一个记录集变量。

6 、使用ADODB生成HTML

ADODBrs2html($res)函数,它提供一个简单的方法,从$res变量中的记录自动生成HTML表格。

它在tohtml.inc.php中,使用时需要包含进来,如下代码:

require ‘adodb/tohtml.inc.php’;
//
引入rs2html函数

require ‘adodb/adodb.inc.php’;
//省略
$rs = $cnx->Execute(‘SELECT flavorcaloriesprice FROM ice_cream’);
rs2html($rs);
使用rs2html($res‘CLASS=”myClass”)这种格式,表示指定表格使用的myClass的样式表类进行显示。

7 、使用ADODB进行分页

ADODB_Pager(该方法定义在adodb-pager.inc.php中)提供一种简单分页显示记录的方法。
require ‘adodb/adodb.inc.php’;
require ‘adodb/adodb-pager.inc.php’;
$pager=new ADODB_Pager($cnx“SELECT idflavorprice FROM ice_cream_big”);
$pager->Render();
使用$pager->Render($num)来设置每次显示的行数,默认值为10

 

8、生成下拉选择菜单

getMenu($selectName)方法将帮助我们生成一个<select>标签,即从记录集中生成一个下拉菜单。其中,$selectName是该表单中selectname标签。例如:
$rs = $cnx->execute(‘SELECT flavorid FROM ice_cream’);
print $rs->GetMenu(‘which_flavor’);
相关说明如下:
ØgetMenu($sN$selected$blank$mult$nm):其中,$selected (string)为默认选择的值/项。
Ø$blank (boolean):默认初始值或布尔值为true时,下拉选项为空。
Ø$mult (boolean):下拉菜单是否可以允许多选。
Ø$nm (integer):设置菜单多重选择的属性,也就是默认几行。

发表评论

电子邮件地址不会被公开。 必填项已用*标注