CrossPHP

SQLModel
in package

Tags
author

wonli wonli@live.com Class SQLModel

Table of Contents

$dbConfig  : array<string|int, mixed>
数据库配置
$fieldsInfo  : array<string|int, mixed>
表字段属性
$groupByFields  : string
默认分组
$index  : array<string|int, mixed>
自定义索引
$joinTables  : array<string|int, mixed>
连表数组
$limit  : string
默认条数
$modelClass  : IModelInfo
模型类
$modelInfo  : array<string|int, mixed>
模型信息
$orderByFields  : string
默认排序
$pk  : string
主键名
$queryFields  : string
查询字段
$splitConfig  : array<string|int, mixed>
分表配置
$table  : string
表名
$useLock  : bool
在事务中获取单条数据时是否加锁
__construct()  : mixed
SQLModel constructor.
add()  : mixed
添加
asIndex()  : $this
将已赋值字段设为索引
count()  : mixed
获取记录条数
db()  : PDOSqlDriver
获取数据库链接
dbs()  : static
当前类实例
del()  : bool
删除
fields()  : SQLModel
设置查询字段, 多用于连表查询
find()  : mixed
按分页获取数据
get()  : mixed
获取单条数据
getAll()  : mixed
获取数据
getArrayData()  : array<string|int, mixed>
获取属性数据
getCondition()  : array<string|int, mixed>
获取查询条件
getDefaultCondition()  : mixed
获取默认条件
getDefaultData()  : array<string|int, mixed>
获取默认值
getDefaultSequence()  : string|array<string|int, mixed>
获取默认的sequence(oracle)
getFields()  : string
获取数据库表字段
getModelClass()  : IModelInfo
获取模型类
getModelInfo()  : mixed
获取模型信息
getOriTableName()  : string
获取数据中的表名
getProperties()  : array<string|int, mixed>
成员属性名称数组
getPropertyInfo()  : bool|mixed
获取字段属性
getTable()  : string
获取表名
groupBy()  : SQLModel
默认分组字段
has()  : bool
判断记录是否存在
id()  : array<string|int, mixed>|mixed
按主键查询
join()  : $this
连表查询
latest()  : mixed
最新
limit()  : SQLModel
默认条数
orderBy()  : SQLModel
设置默认排序字段
property()  : $this
查询数据, 并更新本类属性
rawPrepare()  : PDOStatement
prepare
rawSql()  : PDOStatement
原生SQL
rawWhere()  : PDOSqlDriver
原生条件
resetProperty()  : void
重置属性
select()  : PDOSqlDriver
链式查询
setTable()  : void
自定义表名(包含前缀的完整名称)
transaction()  : bool
事务
update()  : bool
更新
updateOrAdd()  : bool
更新或添加
updateProperty()  : void
更新属性值
useIndex()  : void
指定索引
useLock()  : $this
仅在事务中调用get方法时生效
verifyModelData()  : bool
验证数据是否能映射到类实例
autoJoin()  : mixed
自动连表
autoProcessData()  : mixed
用户处理返回数据格式
getModifiedData()  : array<string|int, mixed>
获取修改过的数据
getPDOInstance()  : PDOSqlDriver
连接数据库
makeInsertData()  : array<string|int, mixed>
获取待插入数据
processDataHandler()  : mixed
处理数据
splitMethod()  : string
分表方法

Properties

$dbConfig

数据库配置

protected array<string|int, mixed> $dbConfig = []

$fieldsInfo

表字段属性

protected array<string|int, mixed> $fieldsInfo = []

$groupByFields

默认分组

protected string $groupByFields

$index

自定义索引

protected array<string|int, mixed> $index = []

$joinTables

连表数组

protected array<string|int, mixed> $joinTables = []

$limit

默认条数

protected string $limit

$modelInfo

模型信息

protected array<string|int, mixed> $modelInfo = ['n' => null, 'type' => null, 'table' => null, 'sequence' => null]
n 连接名
type 连接类型
table 表名
sequence Oracle自增序列

$orderByFields

默认排序

protected string $orderByFields

$queryFields

查询字段

protected string $queryFields = '*'

$splitConfig

分表配置

protected array<string|int, mixed> $splitConfig = ['number' => 32, 'method' => 'hash', 'field' => null, 'prefix' => null]
field 按配置字段分表
prefix 表前缀
method 分表方法(hash||mod)
number 分表数量

$useLock

在事务中获取单条数据时是否加锁

protected bool $useLock = false

Methods

add()

添加

public add([array<string|int, mixed> $data = [] ]) : mixed
Parameters
$data : array<string|int, mixed> = []
Tags
throws
CoreException
throws
DBConnectException
Return values
mixed

asIndex()

将已赋值字段设为索引

public asIndex([bool $autoAlias = true ]) : $this
Parameters
$autoAlias : bool = true
Return values
$this

del()

删除

public del([array<string|int, mixed>|string $condition = [] ]) : bool
Parameters
$condition : array<string|int, mixed>|string = []
Tags
throws
CoreException|DBConnectException
Return values
bool

fields()

设置查询字段, 多用于连表查询

public fields(string $fields) : SQLModel
Parameters
$fields : string
Return values
SQLModel

find()

按分页获取数据

public find([array<string|int, mixed> &$page = ['p' => 1, 'limit' => 50] ][, mixed $where = null ][, string|null $fields = null ][, mixed $order = null ][, mixed $groupBy = null ]) : mixed
Parameters
$page : array<string|int, mixed> = ['p' => 1, 'limit' => 50]
$where : mixed = null
$fields : string|null = null
$order : mixed = null
$groupBy : mixed = null
Tags
throws
CoreException|DBConnectException
Return values
mixed

get()

获取单条数据

public get([mixed $where = null ][, string|null $fields = null ]) : mixed
Parameters
$where : mixed = null
$fields : string|null = null
Tags
throws
CoreException|DBConnectException
Return values
mixed

getAll()

获取数据

public getAll([mixed $where = null ][, string|null $fields = null ][, mixed $order = null ][, mixed $groupBy = null ][, int|null $limit = null ]) : mixed
Parameters
$where : mixed = null
$fields : string|null = null
$order : mixed = null
$groupBy : mixed = null
$limit : int|null = null
Tags
throws
CoreException|DBConnectException
Return values
mixed

getArrayData()

获取属性数据

public getArrayData([bool $hasValue = false ]) : array<string|int, mixed>
Parameters
$hasValue : bool = false
Return values
array<string|int, mixed>

getCondition()

获取查询条件

public getCondition([string $tableAlias = '' ]) : array<string|int, mixed>
Parameters
$tableAlias : string = ''

表别名

Tags
throws
CoreException
Return values
array<string|int, mixed>

getDefaultCondition()

获取默认条件

public getDefaultCondition([bool $strictModel = false ][, bool $autoAlias = true ]) : mixed
Parameters
$strictModel : bool = false

严格模式下索引不能为空

$autoAlias : bool = true
Tags
throws
CoreException
Return values
mixed

getDefaultData()

获取默认值

public getDefaultData() : array<string|int, mixed>
Return values
array<string|int, mixed>

getDefaultSequence()

获取默认的sequence(oracle)

public getDefaultSequence([bool $onlyName = false ]) : string|array<string|int, mixed>
Parameters
$onlyName : bool = false

默认返回表达式

Return values
string|array<string|int, mixed>

getFields()

获取数据库表字段

public getFields([string $alias = '' ][, bool $asPrefix = false ]) : string
Parameters
$alias : string = ''

别名

$asPrefix : bool = false

是否把别名加在字段名之前

Return values
string

getModelInfo()

获取模型信息

public getModelInfo([string|null $key = null ]) : mixed
Parameters
$key : string|null = null
Return values
mixed

getOriTableName()

获取数据中的表名

public getOriTableName() : string
Tags
throws
CoreException
Return values
string

getProperties()

成员属性名称数组

public getProperties() : array<string|int, mixed>
Return values
array<string|int, mixed>

getPropertyInfo()

获取字段属性

public getPropertyInfo([string|null $property = null ]) : bool|mixed
Parameters
$property : string|null = null
Return values
bool|mixed

getTable()

获取表名

public getTable([bool $userJoinTable = true ]) : string
Parameters
$userJoinTable : bool = true

更新,修改,删除时使用默认表名

Tags
throws
CoreException
Return values
string

groupBy()

默认分组字段

public groupBy(mixed $groupBy) : SQLModel
Parameters
$groupBy : mixed
Return values
SQLModel

id()

按主键查询

public id(mixed $id) : array<string|int, mixed>|mixed
Parameters
$id : mixed
Tags
throws
CoreException
throws
DBConnectException
Return values
array<string|int, mixed>|mixed

join()

连表查询

public join(string $table, string $on[, string $type = 'left' ]) : $this
Parameters
$table : string

表名

$on : string

当前类表别名为a, 依次为b,c,d,e...

$type : string = 'left'

默认左联

Return values
$this

latest()

最新

public latest([mixed $where = null ][, string|null $fields = null ]) : mixed
Parameters
$where : mixed = null
$fields : string|null = null
Tags
throws
CoreException|DBConnectException
Return values
mixed

orderBy()

设置默认排序字段

public orderBy(mixed $orderBy) : SQLModel
Parameters
$orderBy : mixed
Return values
SQLModel

property()

查询数据, 并更新本类属性

public property([mixed $where = null ]) : $this
Parameters
$where : mixed = null
Tags
throws
CoreException|DBConnectException
Return values
$this

rawPrepare()

prepare

public rawPrepare(string $sql[, array<string|int, mixed> $prepareParams = [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY] ]) : PDOStatement
Parameters
$sql : string
$prepareParams : array<string|int, mixed> = [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]
Tags
throws
CoreException|DBConnectException
Return values
PDOStatement

rawSql()

原生SQL

public rawSql(string $sql, mixed ...$params) : PDOStatement
Parameters
$sql : string
$params : mixed
Tags
throws
CoreException|DBConnectException
Return values
PDOStatement

resetProperty()

重置属性

public resetProperty() : void
Return values
void

setTable()

自定义表名(包含前缀的完整名称)

public setTable(string $table) : void
Parameters
$table : string
Return values
void

transaction()

事务

public transaction(Closure $handle[, mixed &$result = null ]) : bool
Parameters
$handle : Closure
$result : mixed = null
Tags
throws
CoreException|DBConnectException
Return values
bool

update()

更新

public update([array<string|int, mixed>|string $condition = [] ][, array<string|int, mixed>|string $data = [] ]) : bool
Parameters
$condition : array<string|int, mixed>|string = []
$data : array<string|int, mixed>|string = []
Tags
throws
CoreException|DBConnectException
Return values
bool

updateProperty()

更新属性值

public updateProperty(array<string|int, mixed> $data[, Closure|null $callback = null ]) : void
Parameters
$data : array<string|int, mixed>
$callback : Closure|null = null
Return values
void

useIndex()

指定索引

public useIndex(string $indexName[, mixed $indexValue = null ]) : void
Parameters
$indexName : string
$indexValue : mixed = null
Tags
throws
CoreException
Return values
void

useLock()

仅在事务中调用get方法时生效

public useLock() : $this
Return values
$this

verifyModelData()

验证数据是否能映射到类实例

public verifyModelData(array<string|int, mixed> $data[, bool $updateProperty = false ]) : bool
Parameters
$data : array<string|int, mixed>
$updateProperty : bool = false

为true时更新类属性

Return values
bool

autoJoin()

自动连表

protected autoJoin() : mixed

调用 $this->join() 添加表 调用 $this->fields() 设置返回字段 当调用 get, last, getAll, find等方法时自动连表

Return values
mixed

autoProcessData()

用户处理返回数据格式

protected autoProcessData(array<string|int, mixed> &$data) : mixed

如处理图片CDN地址,JSON序列化等

Parameters
$data : array<string|int, mixed>
Return values
mixed

getModifiedData()

获取修改过的数据

protected getModifiedData() : array<string|int, mixed>
Return values
array<string|int, mixed>

makeInsertData()

获取待插入数据

protected makeInsertData() : array<string|int, mixed>
Return values
array<string|int, mixed>

processDataHandler()

处理数据

protected processDataHandler(array<string|int, mixed> &$data[, bool $multi = false ]) : mixed
Parameters
$data : array<string|int, mixed>
$multi : bool = false
Return values
mixed

splitMethod()

分表方法

protected splitMethod() : string
Tags
throws
CoreException
Return values
string

Search results