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)

获取表字段

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)

新增多条数据

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)

组块结果集

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

where条件组装 相等

$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

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

where 语句组装工厂

$this
_and()

增加 and条件操作符

$this
_or()

增加or条件操作符

$this
lBrackets()

where条件增加左括号

$this
rBrackets()

where条件增加右括号

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

选择列

$this
limit( int $offset, 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 = array(), bool|true $isSelect = true)

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

close()

关闭连接

Details

at line line 24
__construct($conf)

Db constructor.

Parameters

$conf

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

定义操作的表

Parameters

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

Return Value

$this

at line line 41
array getTables()

获取当前db所有表名

Return Value

array

at line line 48
array getAllTableStatus()

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

Return Value

array

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

获取表字段

Parameters

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

Return Value

mixed

at line 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 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 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 line 109
boolean update( string|array $key, array $data = null, bool $and = true, mixed $tablePrefix = null)

根据key更新一条数据

Parameters

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

Return Value

boolean

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

根据key值删除数据

Parameters

string $key eg: 'user-uid-$uid'
bool $and 多个条件之间是否为and true为and false为or
mixed $tablePrefix 表前缀 不传则获取配置中配置的前缀

Return Value

boolean

at line line 129
boolean truncate( string $tableName)

根据表名删除数据

Parameters

string $tableName 要清空的表名

Return Value

boolean

at line line 140
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 line 151
array select( int $offset = null, int $limit = null, bool $useMaster = false)

获取多条数据

Parameters

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

Return Value

array

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

分页获取数据

Parameters

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

Return Value

array

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

获取表主键

Parameters

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

Return Value

string || false

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

获取一条数据

Parameters

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

Return Value

array | bool

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

获取一列

Parameters

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

Return Value

bool|mixed

at line line 202
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 line 210
chunk( int $num = 100, callable $func)

组块结果集

Parameters

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

at line line 220
$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 line 230
$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 line 240
$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 line 250
$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 line 260
$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 line 270
$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 line 280
$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 line 290
$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 line 300
$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 line 312
$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 line 324
$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 line 336
$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 line 347
$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 line 356
$this whereNull( string $column)

where条件组装 IS NULL

Parameters

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

Return Value

$this

at line line 365
$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 line 375
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 操作符

Exceptions

Exception

at line line 382
$this _and()

增加 and条件操作符

Return Value

$this

at line line 389
$this _or()

增加or条件操作符

Return Value

$this

at line line 396
$this lBrackets()

where条件增加左括号

Return Value

$this

at line line 403
$this rBrackets()

where条件增加右括号

Return Value

$this

at line line 413
$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 line 423
$this limit( int $offset, int $limit = 10)

LIMIT

Parameters

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

Return Value

$this

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

排序

Parameters

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

Return Value

$this

at line line 442
$this groupBy( string $column)

分组

Parameters

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

Return Value

$this

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

having语句

Parameters

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

Return Value

$this

at line line 464
$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 line 475
$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 line 486
$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 line 496
$this union( string|array $sql, bool $all = false)

union联结

Parameters

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

Return Value

$this

at line line 507
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 line 518
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 line 529
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 line 540
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 line 551
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 line 561
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 line 570
int insertId( resource $link = null)

获取上一INSERT的主键值

Parameters

resource $link

Return Value

int

at line line 582
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 line 594
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 line 609
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 line 615
__destruct()

析构函数

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

获取数据库 版本

Parameters

resource $link

Return Value

string

at line line 631
bool startTransAction()

开启事务

Return Value

bool

at line line 638
bool commit()

提交事务

Return Value

bool

at line line 647
bool savePoint( string $pointName)

设置一个事务保存点

Parameters

string $pointName 保存点名称

Return Value

bool

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

回滚事务

Parameters

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

Return Value

bool

at line line 668
array|int callProcedure( string $procedureName = '', array $bindParams = array(), 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 line 674
close()

关闭连接