直接将从数据库中取得的数据放入数组,往往比直接操作记录集要方便。PDO提供了和ADODB类似的fetchAll()方法,它允许从一个结果集中取得数据,然后放于关联数组中。
代码如下:
return $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
当然直接写fetchAll(PDO::FETCH_NUM)的话,会将记录集中的内容放在索引数组中去。但是因为PHP的索引数组消耗远远大于关联数组,所以建议使用关联数组。
下面罗列出fetchAll的所有选项
PDO::FETCH_ASSOC —— 关联数组形式;
PDO::FETCH_NUM —— 数字索引数组形式;
PDO::FETCH_BOTH —— 两种数组形式都有,这是默认的;
PDO::FETCH_OBJ —— 按照对象的形式,类似于以前的 mysql_fetch_object()。
下面是实际项目中的代码
<?php
/**
* 取得数据库
*/
function getModelList($db){
$sql = ""; // SQL临时变量
// 读入SQL脚本文件
$fileHandle = fopen("sql/sidebar.sql","r");
while(!feof($fileHandle)){
$sql = $sql.fgets($fileHandle);
}
// 执行查询,并放入结构数组中
return $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
?>