我们CMS内置了一个快速强大的数据库抽象类,支持传统的查询架构以及查询构造器模式。 数据库方法的语法简单明了。

CI官方教材:https://codeigniter4.github.io/userguide/database/query_builder.html


一、基本用法


数据库对象调用方法

\Phpcmf\Service::M()->db


运行查询语句

$rt = \Phpcmf\Service::M()->db->query("你的查询语句");


判断成功与否的方法

$rt = \Phpcmf\Service::M()->db->simpleQuery("你的查询语句");
if ($rt) {
   // 成功
} else {
    //失败
    echo \Phpcmf\Service::M()->db->error();
}



获取最后一次查询的sql语句

$query = \Phpcmf\Service::M()->db->getLastQuery();


二、查询结果


多个查询结果返回

$rt = \Phpcmf\Service::M()->db->query("select * from dr_member");
if ($rt) {
    $rows = $rt->getResultArray();
    foreach ($rows as $t) {
        echo $t['id'];
        .....
    }
}


单个查询结果返回

$rt = \Phpcmf\Service::M()->db->query("select * from dr_member where id=1");
if ($rt) {
    $row = $rt->getRowArray();
    echo $row['id'];
}


三、对象查询


统计某表数据

\Phpcmf\Service::M()->db->table('member')->countAll(); // 全部
\Phpcmf\Service::M()->db->table('member')->where('money', 0)->countAllResults(); // 带条件


条件查询表

$rt = \Phpcmf\Service::M()->db->table("member")->where("字段", "字段值")->get();
if ($rt) {
  $rows = $rt->getResultArray();
  var_dump($rows); 
}


限定数量查询

$rt = \Phpcmf\Service::M()->db->table("member")->limit(10, 0)->get();
if ($rt) {
  $rows = $rt->getResultArray();
  var_dump($rows); 
}


字段选择查询

$rt = \Phpcmf\Service::M()->db->table("member")->select("id,username,email")->get();
if ($rt) {
  $rows = $rt->getResultArray();
  var_dump($rows); 
}


四、插入数据

$data = array(
    'title' => 'My title',
    'name' => 'My Name',
    'date' => 'My date'
);
\Phpcmf\Service::M()->db->table('test')->insert($data);
echo $id = \Phpcmf\Service::M()->db->insertID(); // id

test是表名称,data数组是插入的字段和对应值


五、修改数据


按条件修改

$data = array(
    'title' => 'My title',
    'name' => 'My Name',
    'date' => 'My date'
);
\Phpcmf\Service::M()->db->table('test')->where('id', 123)->update($data);


字段分开写法

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->where('id', 2);
$db->set('field', 'field + 1', false); 
$db->update();
//UPDATE mytable SET field = field+1 WHERE `id` = 2

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->where('id', 2);
$db->set('field', 999);
$db->update();
//UPDATE mytable SET field = 999 WHERE `id` = 2


字段加减值

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->where('id', 2);
$db->increment('field', 99);
$db->update();
//UPDATE mytable SET field = field+99 WHERE `id` = 2

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->where('id', 2);
$db->decrement('field', 99);
$db->update();
//UPDATE mytable SET field = field-99 WHERE `id` = 2



六、数据删除


条件删除

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->delete(array('id' => 123)); 
// DELETE FROM mytable  WHERE id = 123


清空表

$db = \Phpcmf\Service::M()->db->table('mytable');
$db->truncate();