tablehelper.md 2.3 KB

TableHelper

TableHelper是对数据库操作进行的封装。

以下示例根据此表接口进行操作

CREATE TABLE `test` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `nick` varchar(20) NOT NULL COMMENT '昵称',
  `gender` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '性别:1:男,2:女',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试表';
查询
  • getAll($where, $keyword) 返回多条查询记录,二维数组
  • getRow($where, $keyword) 返回一条查询记录,一维数组
  • getCount($where, $keyword) 返回符合查询条件的记录数量
  • getOne($where, $keyword) 返回符合条件一行的第一列记录
  • getCol($where, $keyword) 返回列记录

$where是确切值查询条件,比如主键

$where = [
    'id' => 1,
];
// or
$where = [
    'nick' => 'solu',
    'gender' => 1,
];
getRow($where);

复杂查询可以组合$keyword配置查询

$where = [
];
$keyword = [
    '_field' => 'id,nick', // 指定查询字段
    '_where' => "nick like 'so%'", // 复杂where条件
    '_limit' => '0,5', // 查询数量
    '_sortKey' => 'id DESC', // 排序
    '_groupby' => 'id', // 分组操作
    '_debug' => true, // 打印sql语句,会结束程序运行
];
getAll($where, $keyword);
插入
  • addObject($data) 插入一条数据
  • addObjects($cols, $datas) 插入多条数据,需要指定字段$cols
  • addObjects2($datas) 插入多条记录,读取第一条记录字段名
  • addObjectNx($data, $where) 如果不存在才进行插入操作
  • replaceObject($data) replace into 插入数据
$data = [
    'nick' => 'solu',
    'gender' => 1,
];
addObject($data);

$cols = ['nick', 'gender'];
$datas = [
    [
        'nick' => 'solu',
        'gender' => 1,
    ],
    [
        'nick' => 'some'
        'gender' => 1,
    ],
];
addObjects($cols, $datas);
// or
addObjects2($datas);
删除
  • delObject($where) 删除记录
$where = ['id' => 1];
delObject($where);
更新
  • updateObject($data, $where) 更新操作
$where = ['id' => 1];
$data = ['nick' => 'foobar'];
updateObject($data, $where);
Redis2Mysql

Redis2Mysql是对TableHelper进行缓存封装,使用方法上基本保持一致。