查询
您正在阅读旧版文档,新版文档已迁移至 [https://document.pescms.com]
目录
PESCMS为开发者提供了4个方法。分别为:find(), select(), fetch(), getAll()。前两个可以结合SQL构造器完成一系列SQL动作,后两个为原生SQL方式
示例中均以在控制器中操作作说明。
一维数组的查询
find()
| 参数 | 说明 | 备注 |
|---|---|---|
| $param | 插入占位符绑定的内容数组 | 非必填。若与SQL构造器使用时,存在占位符则必填 |
| $fieldType | 字段类型绑定,与占位符长度一致的数组 | 非必填。字段绑定具体请参阅PHP官网 |
fetch()
| 参数 | 说明 | 备注 |
|---|---|---|
| $sql | SQL语句 | 必填 |
| $param | 插入占位符绑定的内容数组 | 非必填。若使用了占位符则必填 |
| $fieldType | 字段类型绑定,与占位符长度一致的数组 | 非必填。字段绑定具体请参阅PHP官网 |
find()和fetch()方法为一维数组查询,这是什么?他们两者在查询成功后,返回的结果集为一个一维数组。通常适用于,查询单个结果的业务。下面通过示例进行说明,现在通过$_GET['id']查询指定用户的信息
<?php
//find()方法与SQL构造器结合使用查询用户信息
$userInfo = $this->db('user')->where('user_id = :id')->find(array('id' => $_GTE['id']));<?php
//编写原生SQL时,请记得调用表前缀变量
$sql = "SELECT * FROM {$this->prefix}user WHERE user_id = :id";
//fetch()方法使用原生SQL时,db()方法可以不填写表名称的。
$userInfo = $this->db()->fetch($sql, array('id' => $_GET['id']));二维数组的查询
select()
| 参数 | 说明 | 备注 |
|---|---|---|
| $param | 插入占位符绑定的内容数组 | 非必填。若与SQL构造器使用时,存在占位符则必填 |
| $fieldType | 字段类型绑定,与占位符长度一致的数组 | 非必填。字段绑定具体请参阅PHP官网 |
getAll()
| 参数 | 说明 | 备注 |
|---|---|---|
| $sql | SQL语句 | 必填 |
| $param | 插入占位符绑定的内容数组 | 非必填。若使用了占位符则必填 |
| $fieldType | 字段类型绑定,与占位符长度一致的数组 | 非必填。字段绑定具体请参阅PHP官网 |
select()和getAll()方法为二维数组查询,这是什么呢?他们两者在查询成功后,返回的结果集为一个二维数组。通常适用于,获取多行结果的业务。下面通过示例进行说明,现在通过$_GET['uid']查询指定用户的订单表信息。
<?php
//select()方法与SQL构造器结合使用
$orderList = $this->db('order')->where('user_id = :uid')->select(array('uid' => $_GET['uid']));<?php
//编写原生SQL时,请记得调用表前缀变量
$sql = "SELECT * FROM {$this->prefix}order WHERE user_id = :uid";
//getAll()方法使用原生SQL时,db()方法可以不填写表名称的。
$userInfo = $this->db()->getAll($sql, array('uid' => $_GET['uid']));