zdcms内置了一个快速强大的数据库抽象类,支持传统的查询架构以及查询构造器模式。 数据库方法的语法非常简单,今天就来说说zdmcs数据库的操作说明。
一、基本用法
数据库对象调用方法
\Phpcmf\Service::M()->db
运行查询语句
$rt = \Phpcmf\Service::M()->db->query("你的查询语句");
获取最后一次查询的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')->countAllResults(); // 全部 \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); }
四、插入数据
test是表名称,data数组是插入的字段和对应值
$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
五、修改数据
按条件修改
$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); //UPDATE mytable SET field = field+99 WHERE `id` = 2 $db = \Phpcmf\Service::M()->db->table('mytable'); $db->where('id', 2); $db->decrement('field', 99); //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();
七、事务处理
写法标准
\Phpcmf\Service::M()->trans_start(); // 开启事务 // 写入数据 \Phpcmf\Service::M()->table('member')->insert([ 'username' => '1', 'phone' => 888, 'salt' => 888, 'name' => 888, 'money' => 888, 'freeze' => 888, 'spend' => 888, ]); \Phpcmf\Service::M()->trans_comment(); // 提交事务
回滚事务
\Phpcmf\Service::M()->trans_rollback();
八、其他
执行insert,update等时返回有多少行受影响
\Phpcmf\Service::M()->db->affectedRows();