静态查询方法

直接调用模型中的 dbs() 静态方法

get()

获取单条记录

ActLog::dbs()->get($where = null, string $fields = null)

$where 请参考 构造查询条件, $fields 返回数据字段

latest()

获取最新数据

ActLog::dbs()->latest($where = null, string $fields = null)

$where 请参考 构造查询条件, $fields 返回数据字段

id()

按主键查询

ActLog::dbs()->id($id)

$id 参数为主键值

has()

查询记录是否存在

ActLog::dbs()->has($where = null): bool

$where 请参考 构造查询条件

count()

获取记录总条数

ActLog::dbs()->count($where = null): int

$where 请参考 构造查询条件

getAll()

查询所有数据

ActLog::dbs()->getAll($where = null, string $fields = null, $order = null, $groupBy = null, $limit = null)

  • $where 请参考 构造查询条件
  • $fields 返回字段 ActLog::dbs()->fields('*')
  • $order 排序字段 ActLog::dbs()->orderBy('1 desc')
  • $groupBy 分组字段 ActLog::dbs()->groupBy('xx')
  • $limit 返回条数 ActLog::dbs()->limit()

除了$where外, 其余参数支持链式写法

ActLog::dbs()->fields('*')
    ->orderBy('1 desc')
    ->groupBy('1 desc')
    ->limit(1)
    ->getAll();

find()

要返回带分页的数据可以使用find()方法, find()方法的第5个参数传入引用, 就可以返回分页数据

ActLog::dbs()->find(array &$page = ['p' => 1, 'limit' => 50], $where = null, string $fields = null, $order = null, $groupBy = null)

分页参数需要包含以下值

['p' => 1, 'limit' => 50]

p表示当前页数, limit表示一次取多少条, 如果传入了result_count, 内部不再去计算当前条件下的总条数, 会根据result_count返回相应的分页数据.

参数列表

  • $where 请参考 构造查询条件
  • $fields 返回字段 ActLog::dbs()->fields('*')
  • $order 排序字段 ActLog::dbs()->orderBy('1 desc')
  • $groupBy 分组字段 ActLog::dbs()->groupBy('xx')

可以使用链式调用来替代传参

$data = ActLog::dbs()->fields('*')
    ->orderBy('1 desc')
    ->groupBy('1 desc')
    ->find($page);

rawWhere

原生参数查询

ActLog::dbs()->rawWhere('id = ?', 31)->stmt()->fetchAll(\PDO::FETCH_ASSOC);

手动拼接查询条件

rawPrepare

执行手动参数绑定

    $id = 31;
    $stmt = ActLog::dbs()->rawPrepare('select * from cpa_act_log where id = :id');
    $stmt->bindParam(':id', $id);
    $stmt->execute();
    
    $data = $stmt->fetchAll(\PDO::FETCH_ASSOC);

rawSql

执行一条原生查询语句

ActLog::dbs()->rawSql('select * from cpa_act_log')->fetchAll(\PDO::FETCH_ASSOC);

带参数

ActLog::dbs()->rawSql('select * from cpa_act_log where id = ?', 31)->fetchAll(\PDO::FETCH_ASSOC);

插入数据

ActLog::dbs()
    ->rawSql("INSERT INTO `test`.`cpa_act_log`(`name`, `type`, `controller`, `action`) VALUES ('admin', 'get', 'uu', 'a')", 31)->execute();

插入带参数的数据

ActLog::dbs()
    ->rawSql("INSERT INTO `test`.`cpa_act_log`(`name`, `type`, `controller`, `action`) VALUES (?, ?, 'uu', 'a')", 'ideaa', 'im')
    ->execute();