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对象