interface Db

Orm 数据库抽象接口

Methods

__construct($conf)

Db constructor.

$this
table(string|array $table = '', mixed $tablePrefix = null)

定义操作的表

array
getTables()

获取当前db所有表名

array
getAllTableStatus()

获取当前数据库中所有表的信息

mixed
getDbFields(string $table, mixed $tablePrefix = null, int $filter = 0)

获取表字段

array
get(string $key, bool $and = true, bool|string $useMaster = false, null|string $tablePrefix = null)

根据key取出数据

bool|int
set(string $table, array $data, mixed $tablePrefix = null)

根据key 新增 一条数据

bool|array
setMulti(string $table, array $field, array $data, mixed $tablePrefix = null, bool $openTransAction = true)

新增多条数据

int
replaceInto(string $table, array $data, mixed $tablePrefix = null)

插入或替换一条记录 若AUTO_INCREMENT存在则返回 AUTO_INCREMENT 的值.

int
upSet(string $table, array $data, array $up = [], mixed $tablePrefix = null)

插入或更新一条记录

boolean
update(string|array $key, array $data = null, bool $and = true, mixed $tablePrefix = null)

根据key更新一条数据

boolean
delete(string $key = '', bool $and = true, mixed $tablePrefix = null)

根据key值删除数据

boolean
truncate(string $tableName)

根据表名删除数据

string|array
buildSql(null $offset = null, null $limit = null, bool $isSelect = false)

构建sql

array
select(int $offset = null, int $limit = null, bool $useMaster = false)

获取多条数据

array
paginate(int $limit, bool $useMaster = false)

分页获取数据

string
getPk(string $table, string $tablePrefix = null)

获取表主键

array
getOne(bool $useMaster = false)

获取一条数据

bool|mixed
getOneValue(string $column, bool $useMaster = false)

获取一列

array
plunk(string $column, null $key = null, int $limit = null, bool $useMaster = false)

获取数据列值列表

chunk(int $num = 100, callable $func)

组块结果集-此方法前调用paramsAutoReset无效

$this
where(string|array $column, string $value = '')

where条件组装 相等

$this
whereColumn(string $column, string $column2)

where条件组装 两个列相等

$this
whereRaw(string $where, array $params)

where条件原生条件

$this
when(bool $condition, callable $trueCallback, callable $falseCallback = null)

根据条件是否成立执行对应的闭包

$this
whereNot(string $column, string $value)

where条件组装 不等

$this
whereGt(string $column, string $value)

where条件组装 大于

$this
whereLt(string $column, string $value)

where条件组装 小于

$this
whereGte(string $column, string $value)

where条件组装 大于等于

$this
whereLte(string $column, string $value)

where条件组装 小于等于

$this
whereIn(string $column, array $value)

where条件组装 in

$this
whereNotIn(string $column, array $value)

where条件组装 not in

$this
whereRegExp(string $column, string $value)

where条件组装 REGEXP

$this
whereLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装 LIKE

$this
whereNotLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装 LIKE

$this
whereBetween(string $column, string $value, string $value2 = null)

where条件组装 BETWEEN

$this
whereNotBetween(string $column, string $value, string $value2 = null)

where条件组装 NOT BETWEEN

$this
whereNull(string $column)

where条件组装 IS NULL

$this
whereNotNull(string $column)

where条件组装 IS NOT NULL

$this
conditionFactory(string $column, array|int|string $value, string $operator = '=')

where 语句组装工厂

$this
_and(callable $callable = null)

增加 and条件操作符

$this
_or(callable $callable = null)

增加or条件操作符

$this
lBrackets()

where条件增加左括号

$this
rBrackets()

where条件增加右括号

$this
columns(string|array $columns = '*')

选择列

$this
limit(int $offset = 0, int $limit = 10)

LIMIT

$this
orderBy(string $column, string $order = 'ASC')

排序

$this
groupBy(string $column)

分组

$this
having(string $column, string $operator = '=', string $value)

having语句

$this
join(string|array $table, string $on, mixed $tablePrefix = null)

join内联结

$this
leftJoin(string|array $table, string $on, mixed $tablePrefix = null)

leftJoin左联结

$this
rightJoin(string|array $table, string $on, mixed $tablePrefix = null)

rightJoin右联结

$this
union(string|array $sql, bool $all = false)

union联结

mixed
count(string $field = '*', bool $isMulti = false, bool|string $useMaster = false)

获取 COUNT(字段名或*) 的结果

mixed
max(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 MAX(字段名或*) 的结果

mixed
min(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 MIN(字段名或*) 的结果

mixed
sum(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 SUM(字段名或*) 的结果

mixed
avg(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 AVG(字段名或*) 的结果

int
affectedRows(resource $handle, int $type)

返回INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

int
insertId(resource $link = null)

获取上一INSERT的主键值

bool
increment(string $key, int $val = 1, string $field = null, mixed $tablePrefix = null)

指定字段的值+1

bool
decrement(string $key, int $val = 1, string $field = null, mixed $tablePrefix = null)

指定字段的值-1

mixed
connect(string $host, string $username, string $password, string $dbName, string $charset = 'utf8', string $engine = '', bool $pConnect = false)

Db连接

__destruct()

析构函数

string
version(resource $link = null)

获取数据库 版本

bool
startTransAction()

开启事务

bool
commit()

提交事务

bool
savePoint(string $pointName)

设置一个事务保存点

bool
rollBack(bool $rollBackTo = false)

回滚事务

array|int
callProcedure(string $procedureName = '', array $bindParams = [], bool|true $isSelect = true)

调用存储过程 如 : callProcedure('user_check ?,? ', [1, 1], true) pdo

close()

关闭连接

Details

at line 24
__construct($conf)

Db constructor.

Parameters

$conf

at line 34
$this table(string|array $table = '', mixed $tablePrefix = null)

定义操作的表

Parameters

string|array $table 表名 要取别名时使用 [不带前缀表名 => 别名]
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

$this

at line 41
array getTables()

获取当前db所有表名

Return Value

array

at line 48
array getAllTableStatus()

获取当前数据库中所有表的信息

Return Value

array

at line 59
mixed getDbFields(string $table, mixed $tablePrefix = null, int $filter = 0)

获取表字段

Parameters

string $table 表名
mixed $tablePrefix 表前缀,不传则获取配置中配置的前缀
int $filter 0 获取表字段详细信息数组 1获取字段以,号相隔组成的字符串

Return Value

mixed

at line 72
array get(string $key, bool $and = true, bool|string $useMaster = false, null|string $tablePrefix = null)

根据key取出数据

Parameters

string $key get('user-uid-123');
bool $and 多个条件之间是否为and true为and false为or
bool|string $useMaster 是否使用主库 默认读取从库 此选项为字符串时为表前缀$tablePrefix
null|string $tablePrefix 表前缀

Return Value

array

at line 83
bool|int set(string $table, array $data, mixed $tablePrefix = null)

根据key 新增 一条数据

Parameters

string $table
array $data eg: ['username'=>'admin', 'email'=>'linhechengbush@live.com']
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

bool|int

at line 97
bool|array setMulti(string $table, array $field, array $data, mixed $tablePrefix = null, bool $openTransAction = true)

新增多条数据

Parameters

string $table
array $field 字段 eg: ['title', 'msg', 'status', 'ctime‘]
array $data eg: 多条数据的值 [['标题1', '内容1', 1, '2017'], ['标题2', '内容2', 1, '2017']]
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀
bool $openTransAction 是否开启事务 默认开启

Return Value

bool|array

Exceptions

InvalidArgumentException

at line 109
int replaceInto(string $table, array $data, mixed $tablePrefix = null)

插入或替换一条记录 若AUTO_INCREMENT存在则返回 AUTO_INCREMENT 的值.

Parameters

string $table 表名
array $data 插入/更新的值 eg: ['username'=>'admin', 'email'=>'linhechengbush@live.com']
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

int

at line 121
int upSet(string $table, array $data, array $up = [], mixed $tablePrefix = null)

插入或更新一条记录

Parameters

string $table 表名
array $data 插入的值 eg: ['username'=>'admin', 'email'=>'linhechengbush@live.com']
array $up 更新的值-会自动merge $data中的数据
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

int

at line 133
boolean update(string|array $key, array $data = null, bool $and = true, mixed $tablePrefix = null)

根据key更新一条数据

Parameters

string|array $key eg: 'user'(表名)、'user-uid-$uid'(表名+条件) 、'xx'=>'xx' ...
array $data | null $data eg: ['username'=>'admin', 'email'=>'linhechengbush@live.com'] 可以直接通过$key参数传递
bool $and 多个条件之间是否为and true为and false为or
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

boolean

at line 144
boolean delete(string $key = '', bool $and = true, mixed $tablePrefix = null)

根据key值删除数据

Parameters

string $key eg: 'user'(表名,即条件通过where()传递)、'user-uid-$uid'(表名+条件)、啥也不传(即通过table传表名)
bool $and 多个条件之间是否为and true为and false为or
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

boolean

at line 153
boolean truncate(string $tableName)

根据表名删除数据

Parameters

string $tableName 要清空的表名

Return Value

boolean

at line 164
string|array buildSql(null $offset = null, null $limit = null, bool $isSelect = false)

构建sql

Parameters

null $offset 偏移量
null $limit 返回的条数
bool $isSelect 是否为select调用, 是则不重置查询参数并返回cacheKey/否则直接返回sql并重置查询参数

Return Value

string|array

at line 175
array select(int $offset = null, int $limit = null, bool $useMaster = false)

获取多条数据

Parameters

int $offset 偏移量
int $limit 返回的条数
bool $useMaster 是否使用主库 默认读取从库

Return Value

array

at line 185
array paginate(int $limit, bool $useMaster = false)

分页获取数据

Parameters

int $limit 每页返回的条数
bool $useMaster 是否使用主库 默认读取从库

Return Value

array

at line 195
string getPk(string $table, string $tablePrefix = null)

获取表主键

Parameters

string $table 要获取主键的表名
string $tablePrefix 表前缀

Return Value

string || false

at line 204
array getOne(bool $useMaster = false)

获取一条数据

Parameters

bool $useMaster 是否使用主库 默认读取从库

Return Value

array | bool

at line 214
bool|mixed getOneValue(string $column, bool $useMaster = false)

获取一列

Parameters

string $column 列名
bool $useMaster 是否使用主库 默认读取从库

Return Value

bool|mixed

at line 226
array plunk(string $column, null $key = null, int $limit = null, bool $useMaster = false)

获取数据列值列表

Parameters

string $column 列名
null $key 返回数组中为列值指定自定义键(该自定义键必须是该表的其它字段列名)
int $limit 返回的条数
bool $useMaster 是否使用主库 默认读取从库

Return Value

array

at line 234
chunk(int $num = 100, callable $func)

组块结果集-此方法前调用paramsAutoReset无效

Parameters

int $num 每次获取的条数
callable $func 结果集处理函数

at line 244
$this where(string|array $column, string $value = '')

where条件组装 相等

Parameters

string|array $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名) 当$column为数组时 批量设置
string $value |int $value 当$column为数组时 此时$value为false时条件为or 否则为and

Return Value

$this

at line 254
$this whereColumn(string $column, string $column2)

where条件组装 两个列相等

Parameters

string $column eg:username | user.username
string $column2 eg: nickname | user.nickname

Return Value

$this

at line 264
$this whereRaw(string $where, array $params)

where条件原生条件

Parameters

string $where eg:utime > ctime + ?
array $params eg: [10]

Return Value

$this

at line 275
$this when(bool $condition, callable $trueCallback, callable $falseCallback = null)

根据条件是否成立执行对应的闭包

Parameters

bool $condition 条件
callable $trueCallback 条件成立执行的闭包
callable $falseCallback 条件不成立执行的闭包

Return Value

$this

at line 285
$this whereNot(string $column, string $value)

where条件组装 不等

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int $value

Return Value

$this

at line 295
$this whereGt(string $column, string $value)

where条件组装 大于

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int $value

Return Value

$this

at line 305
$this whereLt(string $column, string $value)

where条件组装 小于

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int $value

Return Value

$this

at line 315
$this whereGte(string $column, string $value)

where条件组装 大于等于

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int $value

Return Value

$this

at line 325
$this whereLte(string $column, string $value)

where条件组装 小于等于

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int $value

Return Value

$this

at line 335
$this whereIn(string $column, array $value)

where条件组装 in

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
array $value

Return Value

$this

at line 345
$this whereNotIn(string $column, array $value)

where条件组装 not in

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
array $value [1,2,3]

Return Value

$this

at line 355
$this whereRegExp(string $column, string $value)

where条件组装 REGEXP

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int $value

Return Value

$this

at line 367
$this whereLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装 LIKE

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
bool $leftBlur 是否开始左模糊匹配
string $value |int $value
bool $rightBlur 是否开始右模糊匹配

Return Value

$this

at line 379
$this whereNotLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装 LIKE

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
bool $leftBlur 是否开始左模糊匹配
string $value |int $value
bool $rightBlur 是否开始右模糊匹配

Return Value

$this

at line 391
$this whereBetween(string $column, string $value, string $value2 = null)

where条件组装 BETWEEN

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int | array $value
string $value2 |int | null $value2

Return Value

$this

at line 402
$this whereNotBetween(string $column, string $value, string $value2 = null)

where条件组装 NOT BETWEEN

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
string $value |int | array $value
string $value2 |int | null $value2

Return Value

$this

at line 411
$this whereNull(string $column)

where条件组装 IS NULL

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)

Return Value

$this

at line 420
$this whereNotNull(string $column)

where条件组装 IS NOT NULL

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)

Return Value

$this

at line 431
$this conditionFactory(string $column, array|int|string $value, string $operator = '=')

where 语句组装工厂

Parameters

string $column 如 id user.id (这边的user为表别名如表pre_user as user 这边用user而非带前缀的原表名)
array|int|string $value
string $operator 操作符

Return Value

$this

at line 440
$this _and(callable $callable = null)

增加 and条件操作符

Parameters

callable $callable 如果传入函数则函数内执行的条件会被()包围

Return Value

$this

at line 449
$this _or(callable $callable = null)

增加or条件操作符

Parameters

callable $callable 如果传入函数则函数内执行的条件会被()包围

Return Value

$this

at line 456
$this lBrackets()

where条件增加左括号

Return Value

$this

at line 463
$this rBrackets()

where条件增加右括号

Return Value

$this

at line 473
$this columns(string|array $columns = '*')

选择列

Parameters

string|array $columns 默认选取所有 ['id, 'name'] 选取id,name两列,['article.id' => 'aid', 'article.title' => 'article_title'] 别名

Return Value

$this

at line 483
$this limit(int $offset = 0, int $limit = 10)

LIMIT

Parameters

int $offset 偏移量
int $limit 返回的条数

Return Value

$this

at line 493
$this orderBy(string $column, string $order = 'ASC')

排序

Parameters

string $column 要排序的字段
string $order 方向,默认为正序

Return Value

$this

at line 502
$this groupBy(string $column)

分组

Parameters

string $column 要设置分组的字段名

Return Value

$this

at line 513
$this having(string $column, string $operator = '=', string $value)

having语句

Parameters

string $column 字段名
string $operator 操作符
string $value

Return Value

$this

at line 524
$this join(string|array $table, string $on, mixed $tablePrefix = null)

join内联结

Parameters

string|array $table 表名 要取别名时使用 [不带前缀表名 => 别名]
string $on 联结的条件 如:'c.cid = a.cid'
mixed $tablePrefix 表前缀

Return Value

$this

at line 535
$this leftJoin(string|array $table, string $on, mixed $tablePrefix = null)

leftJoin左联结

Parameters

string|array $table 表名 要取别名时使用 [不带前缀表名 => 别名]
string $on 联结的条件 如:'c.cid = a.cid'
mixed $tablePrefix 表前缀

Return Value

$this

at line 546
$this rightJoin(string|array $table, string $on, mixed $tablePrefix = null)

rightJoin右联结

Parameters

string|array $table 表名 要取别名时使用 [不带前缀表名 => 别名]
string $on 联结的条件 如:'c.cid = a.cid'
mixed $tablePrefix 表前缀

Return Value

$this

at line 556
$this union(string|array $sql, bool $all = false)

union联结

Parameters

string|array $sql 要union的sql
bool $all 是否为union all

Return Value

$this

at line 567
mixed count(string $field = '*', bool $isMulti = false, bool|string $useMaster = false)

获取 COUNT(字段名或*) 的结果

Parameters

string $field 要统计的字段名
bool $isMulti 结果集是否为多条 默认只有一条
bool|string $useMaster 是否使用主库 默认读取从库

Return Value

mixed

at line 578
mixed max(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 MAX(字段名或*) 的结果

Parameters

string $field 要统计的字段名
bool|string $isMulti 结果集是否为多条 默认只有一条。传字符串时相当于执行了 groupBy($isMulti)
bool|string $useMaster 是否使用主库 默认读取从库

Return Value

mixed

at line 589
mixed min(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 MIN(字段名或*) 的结果

Parameters

string $field 要统计的字段名
bool|string $isMulti 结果集是否为多条 默认只有一条。传字符串时相当于执行了 groupBy($isMulti)
bool|string $useMaster 是否使用主库 默认读取从库

Return Value

mixed

at line 600
mixed sum(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 SUM(字段名或*) 的结果

Parameters

string $field 要统计的字段名
bool|string $isMulti 结果集是否为多条 默认只有一条。传字符串时相当于执行了 groupBy($isMulti)
bool|string $useMaster 是否使用主库 默认读取从库

Return Value

mixed

at line 611
mixed avg(string $field = '*', bool|string $isMulti = false, bool|string $useMaster = false)

获取 AVG(字段名或*) 的结果

Parameters

string $field 要统计的字段名
bool|string $isMulti 结果集是否为多条 默认只有一条。传字符串时相当于执行了 groupBy($isMulti)
bool|string $useMaster 是否使用主库 默认读取从库

Return Value

mixed

at line 621
int affectedRows(resource $handle, int $type)

返回INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

Parameters

resource $handle mysql link
int $type 执行的类型1:insert、2:update、3:delete

Return Value

int

at line 630
int insertId(resource $link = null)

获取上一INSERT的主键值

Parameters

resource $link

Return Value

int

at line 642
bool increment(string $key, int $val = 1, string $field = null, mixed $tablePrefix = null)

指定字段的值+1

Parameters

string $key 操作的key eg: user-id-1
int $val
string $field 要改变的字段
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

bool

at line 654
bool decrement(string $key, int $val = 1, string $field = null, mixed $tablePrefix = null)

指定字段的值-1

Parameters

string $key 操作的key user-id-1
int $val
string $field 要改变的字段
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

bool

at line 669
mixed connect(string $host, string $username, string $password, string $dbName, string $charset = 'utf8', string $engine = '', bool $pConnect = false)

Db连接

Parameters

string $host 数据库host
string $username 数据库用户名
string $password 数据库密码
string $dbName 数据库名
string $charset 字符集
string $engine 引擎
bool $pConnect 是否为长连接

Return Value

mixed

at line 675
__destruct()

析构函数

at line 684
string version(resource $link = null)

获取数据库 版本

Parameters

resource $link

Return Value

string

at line 691
bool startTransAction()

开启事务

Return Value

bool

at line 698
bool commit()

提交事务

Return Value

bool

at line 707
bool savePoint(string $pointName)

设置一个事务保存点

Parameters

string $pointName 保存点名称

Return Value

bool

at line 716
bool rollBack(bool $rollBackTo = false)

回滚事务

Parameters

bool $rollBackTo 是否为还原到某个保存点

Return Value

bool

at line 728
array|int callProcedure(string $procedureName = '', array $bindParams = [], bool|true $isSelect = true)

调用存储过程 如 : callProcedure('user_check ?,? ', [1, 1], true) pdo

Parameters

string $procedureName 要调用的存储过程名称
array $bindParams 绑定的参数
bool|true $isSelect 是否为返回数据集的语句

Return Value

array|int

at line 734
close()

关闭连接