query
功能:执行SQL语句
参数:
- $sql SQL语句
- $exit 遇到错误是否输出错误信息 默认 false
示例:
$api->load('db')->query('select * from [!db.pre!]ecms_news where id>1 limit 0,20');
select
功能:查询指定条件的数据,可指定页码及每页显示条数
参数:
- $table 需要查询的表名,需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $field 需要查询的字段,查询所有字段填写 *
- $map 查询条件 不限制条件填写 1 或 1=1
- $pagination 每页显示数据量与页码 格式(数量,页码): 20,1
- $orderby 排序方式
示例:
// 获取新闻表最新发布的10篇新闻,按id倒序排列
$list = $api->load('db')->select('[!db.pre!]ecms_news' , '*' , '1' , '10,1' , 'id desc');
// 获取第二页的数据
$list = $api->load('db')->select('[!db.pre!]ecms_news' , '*' , '1' , '10,2' , 'id desc');
// 获取推荐值为1的数据列表
$list = $api->load('db')->select('[!db.pre!]ecms_news' , '*' , 'isgood=1' , '10,1' , 'id desc');
insert
功能:向数据表写入数据
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $data 需要写入的数据数组,数组的key不能包含不存在的字段,成功后返回新增的ID值
示例:
// 添加一个友链的分类
$data = array(
'classname' => '合作伙伴'
);
$api->load('db')->insert('[!db.pre!]enewslinkclass' , $data);
insertAll
功能:批量向数据表写入数据
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $data 需要写入的数据数组
示例:
// 一次性添加多个友链的分类
$data = array(
array('classname' => '合作伙伴1'),
array('classname' => '合作伙伴2'),
array('classname' => '合作伙伴3'),
array('classname' => '合作伙伴4'),
);
$api->load('db')->insertAll('[!db.pre!]enewslinkclass' , $data);
update
功能:更新数据
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $data 需要更新的字段信息
- $map 更新条件
示例:
// 将userid为520的用户的点数设置为1000
$api->load('db')->update('[!db.pre!]enewsmember' , ['userfen' => 1000] , 'userid=520');
// 将userid为520的用户的点数在原有的基础上加1000点
$api->load('db')->update('[!db.pre!]enewsmember' , ['userfen' => ['userfen + 1000']] , 'userid=520');
delete
功能:删除数据
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $map 删除条件
示例:
// 删除管理员登陆日志
$api->load('db')->delete('[!db.pre!]enewslog' , 1);
// 删除userid为250的会员
$api->load('db')->delete('[!db.pre!]enewsmember' , 'userid=250'); //删除会员主表信息
$api->load('db')->delete('[!db.pre!]enewsmemberadd' , 'userid=250'); //删除会员副表信息
one
功能:获取某一条数据
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $field 需要查询的字段,所有字段使用 *
- $map 查询条件
- $orderby 排序方式
示例:
// 获取id为1的会员信息
$user = $api->load('db')->one('[!db.pre!]enewsmember' , '*' , 'userid=1');
getByPk
功能:根据主健值获取某一条数据
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $value 主键的值
- $field 需要查询的字段,所有字段使用 *
- $pk 主值的字段名 默认 id
示例:
// 获取id为1的会员信息 会员表的主健是 userid
$user = $api->load('db')->getByPk('[!db.pre!]enewsmember' , 1 , '*' , 'userid');
total
功能:统计数量
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
- $map 条件
示例:
// 统计站内一共有多少个会员
$total = $api->load('db')->total('[!db.pre!]enewsmember' , 1);
// 统计站内一共有多少个点数大于100的会员
$total = $api->load('db')->total('[!db.pre!]enewsmember' , 'userfen > 100');
getTableFields
功能:获取数据表的结构,多次调用会自动缓存。
参数:
- $table 表名 需要加表前缀。表前缀统一使用 [!db.pre!]代替
示例:
// 获取会员主表字段信息
$fields = $api->load('db')->getTableFields('[!db.pre!]enewsmember');
// 打印查询
var_dump($fields);
startTrans、endTrans()
功能:启动Mysql事务、和结束事务。自动回滚和提交。数据库引擎为InnoDB可用
示例:
$api->load('db')->startTrans(); // 开启事务
// ....
// .... 这中间执行了N多条SQL操作
// ...
$result = $api->load('db')->endTrans(); // 结束事务
// $result 的值 提交:true 回滚:false
log
功能:管理sql日志
示例:
$api->load('db')->log(true); // 开启sql记录 返回db对象
$log = $api->load('db')->log(); // 不传参数 返回所有运行过的sql语句,以数组形式呈现。
$api->load('db')->log(false); // 关闭sql记录 返回db对象
$api->load('db')->log(null); // 清空sql记录 返回db对象