Constants

PARAM_FLOAT

PARAM_FLOAT = 21

Properties

$instance

$instance

$PDOStatement

$PDOStatement : \PDOStatement

Type

\PDOStatement — PDO操作实例

$queryStr

$queryStr : string

Type

string — 当前SQL指令

$numRows

$numRows

$transTimes

$transTimes

$error

$error

$links

$links : \PDO[]

Type

PDO[] — 数据库连接ID 支持多个连接

$linkID

$linkID : \PDO

Type

\PDO — 当前连接ID

$linkRead

$linkRead

$linkWrite

$linkWrite

$fetchType

$fetchType

$attrCase

$attrCase

$event

$event

$info

$info

$builderClassName

$builderClassName

$builder

$builder

$config

$config

$params

$params

$breakMatchStr

$breakMatchStr

$bind

$bind

Methods

__construct()

__construct(array  $config = []) : mixed

架构函数 读取数据库配置信息

Parameters

array $config

数据库配置数组

Returns

mixed —

instance()

instance(mixed  $config = [], bool|string  $name = false) : \think\db\Connection

取得数据库连接类实例

Parameters

mixed $config

连接配置

bool|string $name

连接标识 true 强制重新连接

Throws

\think\Exception

Returns

\think\db\Connection —

getBuilderClass()

getBuilderClass() : string

获取当前连接器类对应的Builder类

Returns

string —

getBuilder()

getBuilder() : \think\db\Builder

获取当前的builder实例对象

Returns

\think\db\Builder —

getFields()

getFields(string  $tableName) : array

取得数据表的字段信息

Parameters

string $tableName

Returns

array —

getTables()

getTables(string  $dbName = '') : array

取得数据表的字段信息

Parameters

string $dbName

Returns

array —

fieldCase()

fieldCase(array  $info) : array

对返数据表字段信息进行大小写转换出来

Parameters

array $info

字段信息

Returns

array —

getFieldBindType()

getFieldBindType(string  $type) : int

获取字段绑定类型

Parameters

string $type

字段类型

Returns

int —

parseSqlTable()

parseSqlTable(string  $sql) : string

将SQL语句中的__TABLE_NAME__字符串替换成带前缀的表名(小写)

Parameters

string $sql

sql语句

Returns

string —

getTableInfo()

getTableInfo(mixed  $tableName, string  $fetch = '') : mixed

获取数据表信息

Parameters

mixed $tableName

数据表名 留空自动获取

string $fetch

获取信息类型 包括 fields type bind pk

Returns

mixed —

getPk()

getPk(string  $tableName) : string|array

获取数据表的主键

Parameters

string $tableName

数据表名

Returns

string|array —

getTableFields()

getTableFields(string  $tableName) : array

获取数据表字段信息

Parameters

string $tableName

数据表名

Returns

array —

getFieldsType()

getFieldsType(string  $tableName, string  $field = null) : array|string

获取数据表字段类型

Parameters

string $tableName

数据表名

string $field

字段名

Returns

array|string —

getFieldsBind()

getFieldsBind(string  $tableName) : array

获取数据表绑定信息

Parameters

string $tableName

数据表名

Returns

array —

getConfig()

getConfig(string  $config = '') : mixed

获取数据库的配置参数

Parameters

string $config

配置名称

Returns

mixed —

setConfig()

setConfig(string|array  $config, mixed  $value = '') : void

设置数据库的配置参数

Parameters

string|array $config

配置名称

mixed $value

配置值

connect()

connect(array  $config = [], int  $linkNum, array|bool  $autoConnection = false) : \PDO

连接数据库方法

Parameters

array $config

连接参数

int $linkNum

连接序号

array|bool $autoConnection

是否自动连接主数据库(用于分布式)

Throws

\think\Exception

Returns

\PDO —

free()

free() : mixed

释放查询结果

Returns

mixed —

getPdo()

getPdo() : \PDO|false

获取PDO对象

Returns

\PDO|false —

getCursor()

getCursor(string  $sql, array  $bind = [], bool  $master = false, \think\db\Model  $model = null, array  $condition = null, mixed  $relation = null) : \Generator

执行查询 使用生成器返回数据

Parameters

string $sql

sql指令

array $bind

参数绑定

bool $master

是否在主服务器读操作

\think\db\Model $model

模型对象实例

array $condition

查询条件

mixed $relation

关联查询

Returns

\Generator —

query()

query(string  $sql, array  $bind = [], bool  $master = false, bool  $pdo = false) : array

执行查询 返回数据集

Parameters

string $sql

sql指令

array $bind

参数绑定

bool $master

是否在主服务器读操作

bool $pdo

是否返回PDO对象

Throws

\think\db\exception\BindParamException
\PDOException
\Exception
\Throwable

Returns

array —

execute()

execute(string  $sql, array  $bind = [], \think\db\Query  $query = null) : int

执行语句

Parameters

string $sql

sql指令

array $bind

参数绑定

\think\db\Query $query

查询对象

Throws

\think\db\exception\BindParamException
\PDOException
\Exception
\Throwable

Returns

int —

find()

find(\think\db\Query  $query) : array|null|\PDOStatement|string

查找单条记录

Parameters

\think\db\Query $query

查询对象

Throws

\think\db\DbException
\think\db\ModelNotFoundException
\think\db\DataNotFoundException

Returns

array|null|\PDOStatement|string —

cursor()

cursor(\think\db\Query  $query) : \Generator

使用游标查询记录

Parameters

\think\db\Query $query

查询对象

Returns

\Generator —

select()

select(\think\db\Query  $query) : array|\PDOStatement|string

查找记录

Parameters

\think\db\Query $query

查询对象

Throws

\think\db\DbException
\think\db\ModelNotFoundException
\think\db\DataNotFoundException

Returns

array|\PDOStatement|string —

insert()

insert(\think\db\Query  $query, bool  $replace = false, bool  $getLastInsID = false, string  $sequence = null) : int|string

插入记录

Parameters

\think\db\Query $query

查询对象

bool $replace

是否replace

bool $getLastInsID

返回自增主键

string $sequence

自增序列名

Returns

int|string —

insertAll()

insertAll(\think\db\Query  $query, mixed  $dataSet = [], bool  $replace = false, int  $limit = null) : int|string

批量插入记录

Parameters

\think\db\Query $query

查询对象

mixed $dataSet

数据集

bool $replace

是否replace

int $limit

每次写入数据限制

Throws

\Exception
\Throwable

Returns

int|string —

selectInsert()

selectInsert(\think\db\Query  $query, string  $fields, string  $table) : int|string

通过Select方式插入记录

Parameters

\think\db\Query $query

查询对象

string $fields

要插入的数据表字段名

string $table

要插入的数据表名

Throws

\think\exception\PDOException

Returns

int|string —

update()

update(\think\db\Query  $query) : int|string

更新记录

Parameters

\think\db\Query $query

查询对象

Throws

\think\Exception
\think\exception\PDOException

Returns

int|string —

delete()

delete(\think\db\Query  $query) : int

删除记录

Parameters

\think\db\Query $query

查询对象

Throws

\think\Exception
\think\exception\PDOException

Returns

int —

value()

value(\think\db\Query  $query, string  $field, mixed  $default = null, bool  $one = true) : mixed

得到某个字段的值

Parameters

\think\db\Query $query

查询对象

string $field

字段名

mixed $default

默认值

bool $one

是否返回一个值

Returns

mixed —

aggregate()

aggregate(\think\db\Query  $query, string  $aggregate, mixed  $field) : mixed

得到某个字段的值

Parameters

\think\db\Query $query

查询对象

string $aggregate

聚合方法

mixed $field

字段名

Returns

mixed —

column()

column(\think\db\Query  $query, string  $field, string  $key = '') : array

得到某个列的数组

Parameters

\think\db\Query $query

查询对象

string $field

字段名 多个字段用逗号分隔

string $key

索引

Returns

array —

pdo()

pdo(\think\db\Query  $query) : \PDOStatement|string

执行查询但只返回PDOStatement对象

Parameters

\think\db\Query $query

Returns

\PDOStatement|string —

getRealSql()

getRealSql(string  $sql, array  $bind = []) : string

根据参数绑定组装最终的SQL语句 便于调试

Parameters

string $sql

带参数绑定的sql语句

array $bind

参数绑定列表

Returns

string —

transaction()

transaction(callable  $callback) : mixed

执行数据库事务

Parameters

callable $callback

数据操作方法回调

Throws

\think\exception\PDOException
\Exception
\Throwable

Returns

mixed —

startTransXa()

startTransXa(string  $xid) : void

启动XA事务

Parameters

string $xid

XA事务id

prepareXa()

prepareXa(string  $xid) : void

预编译XA事务

Parameters

string $xid

XA事务id

commitXa()

commitXa(string  $xid) : void

提交XA事务

Parameters

string $xid

XA事务id

rollbackXa()

rollbackXa(string  $xid) : void

回滚XA事务

Parameters

string $xid

XA事务id

startTrans()

startTrans() : void

启动事务

Throws

\PDOException
\Exception

commit()

commit() : void

用于非自动提交状态下面的查询提交

Throws

\think\exception\PDOException

rollback()

rollback() : void

事务回滚

Throws

\think\exception\PDOException

batchQuery()

batchQuery(array  $sqlArray = [], array  $bind = []) : bool

批处理执行SQL语句 批处理的指令都认为是execute操作

Parameters

array $sqlArray

SQL批处理指令

array $bind

参数绑定

Returns

bool —

getQueryTimes()

getQueryTimes(bool  $execute = false) : int

获得查询次数

Parameters

bool $execute

是否包含所有查询

Returns

int —

getExecuteTimes()

getExecuteTimes() : int

获得执行次数

Returns

int —

close()

close() : $this

关闭数据库(或者重新连接)

Returns

$this —

getLastSql()

getLastSql() : string

获取最近一次查询的sql语句

Returns

string —

getLastInsID()

getLastInsID(string  $sequence = null) : string

获取最近插入的ID

Parameters

string $sequence

自增序列名

Returns

string —

getNumRows()

getNumRows() : int

获取返回或者影响的记录数

Returns

int —

getError()

getError() : string

获取最近的错误信息

Returns

string —

listen()

listen(callable  $callback) : void

监听SQL执行

Parameters

callable $callback

回调方法

log()

log(mixed  $log, mixed  $type = 'sql') : mixed

Parameters

mixed $log
mixed $type

Returns

mixed —

__destruct()

__destruct() : mixed

析构方法

Returns

mixed —

initialize()

initialize() : void

初始化

setBuilder()

setBuilder(\think\db\Builder  $builder) : void

设置当前的数据库Builder对象

Parameters

\think\db\Builder $builder

parseDsn()

parseDsn(array  $config) : string

解析pdo连接的dsn信息

Parameters

array $config

连接信息

Returns

string —

getExplain()

getExplain(string  $sql) : array

SQL性能分析

Parameters

string $sql

Returns

array —

bindValue()

bindValue(array  $bind = []) : void

参数绑定 支持 ['name'=>'value','id'=>123] 对应命名占位符 或者 ['value',123] 对应问号占位符

Parameters

array $bind

要绑定的参数列表

Throws

\think\db\exception\BindParamException

bindParam()

bindParam(array  $bind) : void

存储过程的输入输出参数绑定

Parameters

array $bind

要绑定的参数列表

Throws

\think\db\exception\BindParamException

getResult()

getResult(bool  $pdo = false, bool  $procedure = false) : array

获得数据集数组

Parameters

bool $pdo

是否返回PDOStatement

bool $procedure

是否存储过程

Returns

array —

procedure()

procedure() : array

获得存储过程数据集

Returns

array —

supportSavepoint()

supportSavepoint() : bool

是否支持事务嵌套

Returns

bool —

parseSavepoint()

parseSavepoint( $name) : string

生成定义保存点的SQL

Parameters

$name

Returns

string —

parseSavepointRollBack()

parseSavepointRollBack( $name) : string

生成回滚到保存点的SQL

Parameters

$name

Returns

string —

isBreak()

isBreak(\PDOException|\Exception  $e) : bool

是否断线

Parameters

\PDOException|\Exception $e

异常对象

Returns

bool —

debug()

debug(bool  $start, string  $sql = '', bool  $master = false) : void

数据库调试 记录当前SQL及分析性能

Parameters

bool $start

调试开始标记 true 开始 false 结束

string $sql

执行的SQL语句 留空自动获取

bool $master

主从标记

triggerSql()

triggerSql(string  $sql, float  $runtime, mixed  $explain = [], bool  $master = false) : void

触发SQL事件

Parameters

string $sql

SQL语句

float $runtime

SQL运行时间

mixed $explain

SQL分析

bool $master

主从标记

initConnect()

initConnect(bool  $master = true) : void

初始化数据库连接

Parameters

bool $master

是否主服务器

multiConnect()

multiConnect(bool  $master = false) : \PDO

连接分布式服务器

Parameters

bool $master

主服务器

Returns

\PDO —

cacheData()

cacheData(string  $key, mixed  $data, array  $config = []) : mixed

缓存数据

Parameters

string $key

缓存标识

mixed $data

缓存数据

array $config

缓存参数

Returns

mixed —

getCacheData()

getCacheData(\think\db\Query  $query, mixed  $cache, mixed  $data, mixed  $key = null) : mixed

获取缓存数据

Parameters

\think\db\Query $query

查询对象

mixed $cache

缓存设置

mixed $data
mixed $key

Returns

mixed —

getCacheKey()

getCacheKey(\think\db\Query  $query, mixed  $value) : string

生成缓存标识

Parameters

\think\db\Query $query

查询对象

mixed $value

缓存数据

Returns

string —