账户中心 退出系统
开发文档 资讯·分享 技术交流 会员登录
phpGrace GSCMS 公众号系统
查询数据

基于表操作对象可以使用 fetch()、find()、fetchAll() 函数来查询单条及多条数据。

1 单条数据查询

1.1 database::table('表名称')->fetch()

功能 : 查询单条数据

参数 :

$fields 查询字段,可选参数,默认 null 代表 *
$fetchType 返回数据形式,可选参数,默认 \PDO::FETCH_ASSOC,传递 \PDO::FETCH_OBJ 代表对象形式

示例

<?php
namespace grace\controller;
use grace\grace;
use grace\database;

class index extends grace{
    public function index(){
        $res = database::table('students')->where('st_id = ?', [2])->fetch();
        // 指定字段查询
        // $res = database::table('students')->where('st_id = ?', [2])->fetch('st_id, st_name, st_age');
        print_r($res);
    }
}

1.2 database::table('表名称')->find()

功能 : 基于主键或者指定字段的单条数据等值查询

参数 : 

* @param string $PK 主键或字段名称名称
* @param $PKVal 对应键的值
* @param string $fields 查询字段,可选参数 默认 *
* @param int $fetchType 返回数据形式,可选参数,默认 \PDO::FETCH_ASSOC,传递 \PDO::FETCH_OBJ 代表对象形式

示例

<?php
namespace grace\controller;
use grace\grace;
use grace\database;

class index extends grace{
    public function index(){
        $res = database::table('students')->find('st_id', 20, '*', \PDO::FETCH_OBJ);
        print_r($res);
    }
}

2 多条数据查询

database::table('表名称')->fetchAll()

功能 : 查询多条数据

参数 :

$fields 查询字段,可选参数,默认 null 代表 *
$fetchType 返回数据形式,可选参数,默认 \PDO::FETCH_ASSOC,传递 \PDO::FETCH_OBJ 代表对象形式

示例

<?php
namespace grace\controller;
use grace\grace;
use grace\database;

class index extends grace{
    public function index(){
        $res = database::table('students')->limit(0,10)->fetchAll('st_id, st_name, st_age');
        print_r($res);
    }
}

基于表操作对象可以使用 fetch()、find()、fetchAll() 函数来查询单条及多条数据。

3 基于数据库操作对象的自定义查询

database::init('表名称')->query()

说明 : query() 函数是底层的,适用于自己编写 sql 命令进行增删改查。当 query 函数遇到查询语句时会返回查询对象,使用 queryFetch 和  queryFetchAll 可以完成后续的数据查询工作。

3.1 queryFetch() 单条数据获取

参数 : $fetchType 返回数据形式,可选参数,默认 \PDO::FETCH_ASSOC,传递 \PDO::FETCH_OBJ 代表对象形式

3.2 queryFetchAll() 多条数据获取

参数 : $fetchType 返回数据形式,可选参数,默认 \PDO::FETCH_ASSOC,传递 \PDO::FETCH_OBJ 代表对象形式

示例

$db = database::init();
$pretreatment = $db->query('select count(*) as total from grace_students');
$arr = $pretreatment->queryFetch();
print_r($arr);

$pretreatment2 = $db->query('select * from grace_students where st_id < 10');
$arr2 = $pretreatment2->queryFetchAll();
print_r($arr2);