\PhalApi\ModelDataModel

基于数据库的数据基类

  • 提供更常用的数据库操作接口,避免Model子类的重复开发工作
  • 之所以不在NotORMModel扩展,是为了考虑避免对项目已有的接口有冲突和影响

Summary

Methods
Properties
Constants
get()
insert()
update()
delete()
model()
notorm()
count()
min()
max()
sum()
getValueBy()
getValueMoreBy()
getDataBy()
getDataMoreBy()
getData()
getList()
__call()
deleteAll()
deleteIds()
updateAll()
updateCounter()
insertMore()
queryAll()
executeSql()
No public properties found
No constants found
formatExtData()
parseExtData()
getTableName()
getTableKey()
getORM()
table()
getNotORM()
loadTableKeys()
$tableKeys
N/A
No private methods found
No private properties found
N/A

Properties

$tableKeys

$tableKeys : 

Type

Methods

get()

get(\PhalApi\long  $id, \PhalApi\string/array  $fields = '*') : array

---------------- CURD基本操作 ---------------- *

Parameters

\PhalApi\long $id

纪录主键

\PhalApi\string/array $fields

需要获取的表字段,可以为字符串(如:name,from)或数组(如:array('name', 'from'))

Returns

array —

数据库表纪录

insert()

insert(array  $data,   $id = NULL) : \PhalApi\long

---------------- 插入操作 ---------------- *

Parameters

array $data

待插入的数据,可以包括ext_data字段

$id

分表参考主键

Returns

\PhalApi\long —

新插入纪录的主键值

update()

update(\PhalApi\long  $id, array  $data) : \PhalApi\TRUE/FALSE

根据主键更新纪录

Parameters

\PhalApi\long $id

主键

array $data

待更新的数据,可以包括ext_data字段

Returns

\PhalApi\TRUE/FALSE

delete()

delete(  $id) 

根据主键删除纪录

Parameters

$id

model()

model() : \PhalApi\Model\DataModel

创建并获取当前Model实例

Returns

\PhalApi\Model\DataModel

当前Model子类,继承于DataModel

notorm()

notorm() : \PhalApi\Model\NotORM_Result

创建并获取当前Model对应的NotORM实例

Returns

\PhalApi\Model\NotORM_Result —

NotORM实例

count()

count(string|array|NULL  $where = NULL, string  $countBy = '*') : integer

获取总数

Parameters

string|array|NULL $where

统计条件

string $countBy

需要统计的字段名

Returns

integer —

总数

min()

min(string|array|NULL  $where, string  $minBy) : mixed

取最小值

Parameters

string|array|NULL $where

统计条件

string $minBy

需要获取的字段

Returns

mixed

max()

max(string|array|NULL  $where, string  $maxBy) : mixed

取最大值

Parameters

string|array|NULL $where

统计条件

string $maxBy

需要获取的字段

Returns

mixed

sum()

sum(string|array  $where, string  $sumBy) : integer

求和

Parameters

string|array $where

查询条件,例如:id = 1,或数组形式array('id' => 1)

string $sumBy

求和字段

Returns

integer —

getValueBy()

getValueBy(string  $field, string|integer|float|NULL  $value, string  $selectFiled, mixed  $default = FALSE) : mixed

获取字段值

Parameters

string $field

需要查询的字段名,通常为主键或带有唯一索引的字段

string|integer|float|NULL $value

查询的值

string $selectFiled

需要获取的字段

mixed $default

默认值

Returns

mixed —

字段值

getValueMoreBy()

getValueMoreBy(string  $field, string|array|integer|float|NULL  $value, string  $selectFiled, integer  $limit, boolean  $isDistinct = FALSE) : array

获取字段值(多个)

Parameters

string $field

需要查询的字段名,通常为主键或带有唯一索引的字段

string|array|integer|float|NULL $value

查询的值

string $selectFiled

需要获取的字段

integer $limit

需要获取的数量,为0时无限制,顺序获取

boolean $isDistinct

是否去重

Returns

array —

字段值数组,没有时返回空数组

getDataBy()

getDataBy(string  $field, string|integer|float|NULL  $value, string|array  $select = '*', boolean|array  $default = FALSE) : array|boolean

获取一条纪录

Parameters

string $field

需要查询的字段名,通常为主键或带有唯一索引的字段

string|integer|float|NULL $value

查询的值

string|array $select

需要获取的字段

boolean|array $default

默认值

Returns

array|boolean —

没有时返回默认值

getDataMoreBy()

getDataMoreBy(string  $field, string|integer|float|NULL  $value, integer  $limit, string|array  $select = '*') : array

获取多条纪录

Parameters

string $field

需要查询的字段名,通常为主键或带有唯一索引的字段

string|integer|float|NULL $value

查询的值

integer $limit

需要获取的数量,为0时无限制,顺序获取

string|array $select

需要获取的字段

Returns

array —

没有时返回空数组

getData()

getData(string|array  $where = NULL, array  $whereParams = array(), string|array  $select = '*', boolean|array  $default = FALSE) : array|boolean

根据条件,取一条纪录数据

Parameters

string|array $where

查询条件

array $whereParams

更复杂查询条件时的动态参数

string|array $select

需要获取的字段

boolean|array $default

默认值

Returns

array|boolean —

没有时返回默认值

getList()

getList(string|array  $where = NULL, array  $whereParams = array(), string|array  $select = '*', string  $order = NULL, integer  $page = 1, integer  $perpage = 100) : array

根据条件,取列表数组

Parameters

string|array $where

查询条件

array $whereParams

更复杂查询条件时的动态参数

string|array $select

需要获取的字段

string $order

排序

integer $page

第几页

integer $perpage

分页数量

Returns

array —

没有时返回空数组

__call()

__call(  $name,   $arguments) 

Parameters

$name
$arguments

deleteAll()

deleteAll(string|array  $where) : integer|boolean

删除全部

Parameters

string|array $where

查询条件,例如:id = 1,或数组形式array('id' => 1)

Returns

integer|boolean —

返回删除的条数

deleteIds()

deleteIds(string|array  $ids) : integer|boolean

根据多个ID删除

Parameters

string|array $ids

Returns

integer|boolean —

返回删除的条数

updateAll()

updateAll(string|array  $where, array  $updateData) : integer|boolean

更新全部数据

Parameters

string|array $where

查询条件,例如:id = 1,或数组形式array('id' => 1)

array $updateData

Returns

integer|boolean —

返回更新的条数

updateCounter()

updateCounter(string|array  $where, array  $updateData) : integer|boolean

更新计数器

Parameters

string|array $where

查询条件,例如:id = 1,或数组形式array('id' => 1)

array $updateData

累加或累减的更新数据,例如:array('字段名' => 1),支持多组

Returns

integer|boolean —

返回更新的条数

insertMore()

insertMore(array  $datas, string  $isIgnore = FALSE) : integer

批量插入

Parameters

array $datas

二维数组

string $isIgnore

Returns

integer —

返回新增的条数

queryAll()

queryAll(string  $sql, array  $parmas = array()) : array

执行SQL查询语句,支持参数绑定

Parameters

string $sql

完整的查询语句,例如:select from user where id = :id,或:select from user where id = ?

array $parmas

需要动态绑定的参数,例如:array(':id' => 1),或:array(1)

Throws

\PhalApi\Model\PDOException

Returns

array —

查询的结果集

executeSql()

executeSql(string  $sql, array  $params = array()) : integer|boolean

执行SQL变更语句,支持参数绑定

Parameters

string $sql

完整的变更语句

array $params

需要动态绑定的参数,例如:array(':id' => 1),或:array(1)

Throws

\PhalApi\Model\PDOException

Returns

integer|boolean —

返回影响的行数

formatExtData()

formatExtData(  $data) 

对LOB的ext_data字段进行格式化(序列化)

Parameters

$data

parseExtData()

parseExtData(  $data) 

对LOB的ext_data字段进行解析(反序列化)

Parameters

$data

getTableName()

getTableName(  $id) 

根据主键值返回对应的表名,注意分表的情况

默认表名为:[表前缀] + 全部小写的匹配表名

在以下场景下,需要重写此方法以指定表名

    1. 自动匹配的表名与实际表名不符
    1. 存在分表
    1. Model类名不含有Model_

Parameters

$id

getTableKey()

getTableKey(string  $table) : string

根据表名获取主键名

  • 考虑到配置中的表主键不一定是id,所以这里将默认自动装配数据库配置并匹配对应的主键名
  • 如果不希望因自动匹配所带来的性能问题,可以在每个实现子类手工返回对应的主键名
  • 注意分表的情况

Parameters

string $table

表名/分表名

Returns

string —

主键名

getORM()

getORM(\PhalApi\Model\string/int  $id = NULL) : \NotORM_Result

快速获取ORM实例,注意每次获取都是新的实例

Parameters

\PhalApi\Model\string/int $id

Returns

\NotORM_Result

table()

table(string  $table) : \NotORM_Result

快速获取指定table的ORM实例.

Parameters

string $table

表名可指定服务器,比如demo2.user

Returns

\NotORM_Result

getNotORM()

getNotORM() : \PhalApi\Database\NotORMDatabase

获取当前Model所依赖的数据库实例,尤其当需要同时使用多个数据库时,可重载此方法

Returns

\PhalApi\Database\NotORMDatabase

loadTableKeys()

loadTableKeys()