## 基本方法
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();
}
~~~