\Table

WebApp data model.

数据表模型,这个模块主要是根据schema字典构建出相应的SQL表达式 然后通过driver模型进行执行

Summary

Methods
Properties
Constants
__construct()
GetDebugger()
getSchema()
mysqli()
limit()
group_by()
order_by()
where()
in()
left_join()
on()
exec()
getLastMySql()
getLastMySqlError()
select()
project()
count()
find()
random()
findfield()
ExecuteScalar()
all()
add()
save()
delete()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
isValidDbConfig()
__initBaseOnExternalConfig()
__initBaseOnTableName()
getKeys()
getWhere()
is_empty()
getOrderBy()
getGroupBy()
getLimit()
throwEmpty()
addOption()
buildJoin()
$driver
$schema
$condition
N/A

Properties

$schema

$schema : \MVC\MySql\SchemaInfo

当前的这个数据表的结构信息

Type

\MVC\MySql\SchemaInfo

$condition

$condition : array

对MySql查询表达式的一些额外的配置信息数组 例如 where limit order distinct 等

进行链式调用的基础

Type

array

Methods

__construct()

__construct(string|array  $config, string  $condition = null) 

Create an abstract table model.

Parameters

string|array $config

Database connection config, it can be:

  • (string) tableName,
  • (array) config, or
  • (array) [dbname => table] when multiple database config exists.
string $condition

default is nothing, means all, no filter

GetDebugger()

GetDebugger(string  $tableName,   $database, string  $schemaCache) : \Table

这个函数只适用于命令行终端环境下的数据库查询调试

Parameters

string $tableName

所需要进行调试的目标表的名称

$database
string $schemaCache

表结构信息的本地缓存php文件的路径

Returns

\Table

mysqli()

mysqli() : \mysqli

打开一个新的和mysql数据库的链接对象实例

Returns

\mysqli —

Returns a new mysqli connection.

limit()

limit(integer  $m, integer  $n = -1) : \Table

对查询的结果的数量进行限制,当只有参数m的时候,表示查询结果限制为前m条, 当参数n被赋值的时候,表示偏移m条之后返回n条结果

Parameters

integer $m

LIMIT m

integer $n

LIMIT m,n

Returns

\Table

group_by()

group_by(string|array  $keys) : \Table

进行分组操作

Parameters

string|array $keys

进行分组操作的字段依据,可以是一个字段或者一个字段的集合

Returns

\Table

返回表结构模型对象,用于继续构建表达式,进行链的延伸

order_by()

order_by(string|array  $keys, boolean  $desc = false) : \Table

对返回来的结果按照给定的字段进行排序操作

Parameters

string|array $keys

进行排序操作的字段依据,可以是一个字段或者一个字段的集合

boolean $desc

升序排序还是降序排序?默认是升序排序,当这个参数为true的时候为降序排序

Returns

\Table

where()

where(mixed  $assert,   $and = true) : \Table

Create a where condition filter for the next SQL expression.

(这个函数影响SELECT, UPDATE, DELETE,不会影响INSERT操作)

Parameters

mixed $assert

The assert array of the where condition or an string expression.

$and

Returns

\Table

Returns a new Table object instance for expression chaining.

in()

in(  $assert) : \Table

fieldName => list

(这个函数影响SELECT UPDATE DELETE,不会影响INSERT操作)

Parameters

$assert

Returns

\Table

left_join()

left_join(string  $tableName) : \Table

LEFT JOIN

Parameters

string $tableName

Target table name

Returns

\Table

on()

on(  $equals) : \Table

LEFT JOIN .

.. ON

Parameters

$equals

Returns

\Table

exec()

exec(string  $SQL) : mixed

直接执行一条SQL语句

Parameters

string $SQL

Returns

mixed

getLastMySql()

getLastMySql(  $code = false) : string

获取当前的这个实例之中所执行的最后一条MySql语句

Parameters

$code

Returns

string

getLastMySqlError()

getLastMySqlError() 

select()

select(array  $fields = null, string  $keyBy = null) : array

select all.(函数参数``$fields``是需要选择的字段列表,如果没有传递任何参数的话, 默认是``*``,即选择全部字段)

Parameters

array $fields

A string array.

string $keyBy

如果这个参数不是空的话,则返回来的数组将会使用这个字段的值作为index key.

Returns

array

project()

project(string  $fieldName) : array

这个函数通过一个数组返回目标列的所有数据

Parameters

string $fieldName

数据表之中的列名称

Returns

array —

返回来的列的数据

count()

count() : integer

计数

select count(*) from where ...; 这个方法可能会受到limit或者group by表达式的影响

Returns

integer

find()

find() 

select but limit 1

如果查询失败会返回逻辑值false

random()

random(string  $key = "id") 

获取数据库之中的随机的一条记录,这个数据库必须要存在一个自增的id列作为主键

Parameters

string $key

如果该自增的id列的名称不是id,则会需要使用这个参数 来指定该自增id列的名称

findfield()

findfield(  $name) : mixed

Select and limit 1 and return the field value, if target record is not found, then returns false.

Parameters

$name

Returns

mixed —

The reuqired field value.

ExecuteScalar()

ExecuteScalar(string  $aggregate) 

一般用于执行聚合函数查询,例如SUM, AVG, MIN, MAX等

Parameters

string $aggregate

聚合函数表达式,例如 max(`id`)

all()

all() 

select * from `table`;

(不受where条件以及limit的影响,但是可以使用order by进行结果的排序操作)

add()

add(array  $data) 

insert into.

Parameters

array $data

table row data in array type

save()

save(  $data) : boolean

update table

Parameters

$data

Returns

boolean

delete()

delete() 

delete from

isValidDbConfig()

isValidDbConfig(  $config) : boolean

判断目标配置信息是否是有效的数据库连接参数配置数组?

Parameters

$config

Returns

boolean

__initBaseOnExternalConfig()

__initBaseOnExternalConfig(  $tableName,   $config) 

不通过内部的配置数据而是通过外部传递过来的新的配置数组 来进行初始化

Parameters

$tableName
$config

__initBaseOnTableName()

__initBaseOnTableName(  $tableName) 

通过表名称来初始化

Parameters

$tableName

getKeys()

getKeys(  $keys) : string

order_by 和 group_by的公用函数

Parameters

$keys

Returns

string

getWhere()

getWhere() : string

Returns

string —

where expression

is_empty()

is_empty(  $key) : boolean

判断条件查询之中的给定的条件是否是不存在?

Parameters

$key

Returns

boolean

getOrderBy()

getOrderBy() 

生成``order by``语句部分

getGroupBy()

getGroupBy() 

getLimit()

getLimit() 

生成``limit m``或者``limit m,n``语句部分

throwEmpty()

throwEmpty() 

addOption()

addOption(  $option) 

Parameters

$option

buildJoin()

buildJoin() : string

Returns

string