🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 基本方法 DbModel封装了一些基本方法来操作数据库。 * * * * * #### getOne 根据条件获取表中一行数据的一个字段的值 ~~~ DbModel::getOne($field) ~~~ 根据条件获取表中一行数据的一个字段的值。 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | field | 是 | string | 字段名 | 用例: ~~~ /** * 测试根据条件获取一个字段值 * * @return mixed|string */ public function testGetOne() { $query = $this->where('id', '=', 1)->andWhere('id', '<', 2); return $query->getOne('name'); } ~~~ * * * * * #### getRow 根据条件获取表中一行数据 ~~~ DbModel::getRow($fields = '*') ~~~ 根据条件获取表中一行数据 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | fields | 否 | string,array | 字段名列表,默认所有字段 | fields可以是逗号(,)分隔的字符串,也可以是数组。形如:'id, name, email, age' 或 ['id', 'name', 'email', 'age'] 均可,默认是全部。 用例: ~~~ /** * 测试根据条件获取一行数据 * * @return array|mixed */ public function testGetRow() { $fields = 'name, email'; $query = $this->where('id', '=', 1)->andWhere('id', '<', 2); return $query->getRow($fields); } ~~~ * * * * * #### getRows 根据条件获取表中多行数据 ~~~ DbModel::getRows($fields = '*', $sort = null, $limit = null, $primkey = false) ~~~ 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | fields | 否 | string,array | 字段名列表,默认所有字段 | | sort | 否 | string | 排序方式,形如:“id asc” | | limit | 否 | string | 获取区间,形如:"0, 50" | | primkey | 否 | boolean | 是否返回以主键为下标的二位数组,默认为否 | fields可以是逗号(,)分隔的字符串,也可以是数组。形如:'id, name, email, age' 或 ['id', 'name', 'email', 'age'] 均可,默认是全部。 用例: ~~~ /** * 测试根据条件获取多行数据 * * @return array */ public function testGetRows() { $fields = 'id, name, email'; $sort = 'id asc'; $limit = '0, 10'; $primkey = false; $query = $this->where('id', '>', 10)->andWhere('id', '<', 20); return $query->getRows($fields, $sort, $limit, $primkey); } ~~~ * * * * * #### lastInsertId 获取最后插入的ID ~~~ DbModel::lastInsertId() ~~~ 参数表 无 用例: ~~~ /** * 测试获取最后插入的id * * @return int */ public function testGetLastInsertId() { return $this->lastInsertId(); } ~~~ * * * * * #### getLastSql 获取最后执行的SQL语句 ~~~ DbModel::getLastSql() ~~~ 参数表 无 用例: ~~~ /** * 测试获取最后执行的SQL语句 * * @return string */ public function testGetLastSql() { return $this->getLastSql(); } ~~~ * * * * * #### insert 插入一条记录 ~~~ DbModel::insert($row) ~~~ 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | row | 是 | array | 要插入的数据数组,必须是键值对数组 | row必须是键值对数组,以字段名为键名,以字段值为键值,一维数组。 用例: ~~~ /** * 测试插入数据 * * @return int 返回影响行数 */ public function testInsert() { $row = [ 'name' => '张三', 'age' => 20, 'email' => 'zs@qq.com', 'create_at' => '2016-12-06 12:00:00' ]; return $this->insert($row); } ~~~ * * * * * #### replace 替换或插入一条记录 ~~~ DbModel::replace($row) ~~~ 该方法类似于insert方法,不同的是,如果插入的数据和已有数据的主键、unique字段、联合unique索引冲突时,会进行替换而不是插入。 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | row | 是 | array | 要插入或替换的数据数组,必须是键值对数组 | row必须是键值对数组,以字段名为键名,以字段值为键值,一维数组。 用例: ~~~ /** * 测试替换数据 * * @return int 返回影响行数 */ public function testReplace() { $row = [ 'id' => 6, 'name' => '张三', 'age' => 23, 'email' => '223@qq.com', 'create_at' => '2016-12-06 12:00:00' ]; return $this->replace($row); } ~~~ * * * * * #### insertIgnore 插入或忽略一条记录 ~~~ DbModel::insertIgnore($row) ~~~ 该方法类似于insert方法,不同的是,如果插入的数据和已有数据的主键、unique字段、联合unique索引冲突时,会忽略此插入操作。 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | row | 是 | array | 要插入的数据数组,必须是键值对数组 | row必须是键值对数组,以字段名为键名,以字段值为键值,一维数组。 用例: ~~~ /** * 测试插入数据,如果主键重复或唯一索引冲突则忽略 * * @return int 返回影响行数 */ public function testInsertIgnore() { $row = [ 'id' => 3, 'name' => '张三', 'age' => 36, 'email' => '223@qq.com', 'create_at' => '2016-12-06 12:00:00' ]; return $this->insertIgnore($row); } ~~~ * * * * * #### delete 删除记录 ~~~ DbModel::delete() ~~~ 删除满足查询条件的记录。 参数表 无 用例: ~~~ /** * 测试根据条件删除数据 * * @return int 返回影响行数 */ public function testDelete() { $query = $this->where('id', '=', 21); return $query->delete(); } ~~~ * * * * * #### update 更新一条记录 ~~~ DbModel::update($row) ~~~ 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | row | 是 | array | 要更新的数据数组,必须是键值对数组 | row必须是键值对数组,以字段名为键名,以字段值为键值,一维数组。 用例: ~~~ /** * 测试根据条件更新数据 * * @return int 返回影响行数 */ public function testUpdate() { $row = [ 'name' => '张三他妈', 'age' => 36, 'email' => '223@qq.com', 'create_at' => '2016-12-06 12:00:00' ]; $query = $this->where('id', '=', 19); return $query->update($row); } ~~~ * * * * * #### increase 字段值自增 ~~~ DbModel::increase($id, $field, $incValue = 1) ~~~ 字段值自增。 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | id | 是 | int | 要自增数据行的主键id | | field | 是 | string | 要自增数据的字段名 | | incValue | 否 | int | 要自增的值,默认1 | 用例: ~~~ /** * 测试自增一个字段的值 * * @return int 返回影响行数 */ public function testInc() { $id = 1; return $this->increase($id, 'click', 1); } ~~~ * * * * * #### decrease 字段值自减 ~~~ DbModel::decrease($id, $field, $decValue = 1) ~~~ 字段值自减。 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | id | 是 | int | 要自减数据行的主键id | | field | 是 | string | 要自减数据的字段名 | | decValue | 否 | int | 要自减的值,默认1 | 用例: ~~~ /** * 测试自减一个字段的值 * * @return int 返回影响行数 */ public function testDec() { $id = 1; return $this->decrease($id, 'click', 1); } ~~~ * * * * * #### getFields 获取表字段名列表 ~~~ DbModel::getFields($excepts = []) ~~~ 字段值自减。 参数表 | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | excepts | 否 | array | 要忽略的字段数组 | 用例: ~~~ /** * 测试获取一个表的字段列表 * * @return array */ public function testGetFields() { $excepts = ['id', 'name']; return $this->getFields($excepts); } ~~~ * * * * * #### beginTransaction 开启事务 ~~~ DbModel::beginTransaction() ~~~ 开启事务。 参数表 无 用例: ~~~ /** * 测试开启事务 * * @return boolean */ public function testBeginTransaction() { return $this->beginTransaction(); } ~~~ * * * * * #### rollBack 回滚事务 ~~~ DbModel::rollBack() ~~~ 回滚事务。 参数表 无 用例: ~~~ /** * 测试回滚事务 * * @return boolean */ public function testRollBack() { return $this->rollBack(); } ~~~ * * * * * #### commit 提交事务 ~~~ DbModel::commit() ~~~ 提交事务。 参数表 无 用例: ~~~ /** * 测试提交事务 * * @return boolean */ public function testCommit() { return $this->commit(); } ~~~