DatabaseDriver

实现 DatabaseInterface, DispatcherAwareInterface

Joomla 框架数据库驱动类

抽象

1.0

Joomla 框架

方法

__construct

构造函数。

__construct(mixed||string|int options) : 

1.0

参数

options

array<string|int, mixed> 用于配置连接的选项列表

响应

混合

__destruct

析构函数。

__destruct() : 

2.0.0

响应

混合

__get

用于访问数据库驱动程序属性的魔术方法。

__get( name) : 
已弃用

1.4.0

已弃用

3.0 这是一个 B/C 代理,因为 $this->name 以前是公开的

参数

name

string 属性的名称。

响应

mixed 如果属性名称有效,则为值;否则为 null。

alterDbCharacterSet

更改数据库的字符集。

alterDbCharacterSet( dbName) : bool|resource

2.0.0

抛出

RuntimeException

参数

dbName

string 将要更改的数据库名称

响应

bool|resource

createDatabase

使用 $options 对象中的信息创建一个新数据库。

createDatabase(\stdClass options,  utf = true) : bool|resource

2.0.0

抛出

RuntimeException

参数

options

stdClass 用于将用户和数据库名称传递给数据库驱动程序的对象。该对象必须设置 "db_name" 和 "db_user"。

utf

bool 如果数据库支持 UTF-8 字符集,则为 True。

响应

bool|resource

createQuery

创建一个新的 DatabaseQuery 对象。

createQuery() : \Joomla\Database\QueryInterface

2.2

响应

QueryInterface

decodeBinary

用原始字符串替换表示二进制字段的特殊占位符。

decodeBinary(string|resource data) : 

1.7.0

参数

data

string|resource 编码的字符串或资源。

响应

string 原始字符串。

disconnect

断开数据库连接。

disconnect() : 

2.0.0

响应

void

dispatchEvent

调度一个事件。

dispatchEvent(\Joomla\Event\EventInterface event) : 

2.0.0

参数

event

EventInterface 要调度的事件

响应

void

dropTable

从数据库中删除一个表。

dropTable( table,  ifExists = true) : 

2.0.0

抛出

RuntimeException

参数

table

string 要删除的数据库表的名称。

ifExists

bool 可选地指定表必须存在才能删除。

响应

$this

execute

执行 SQL 语句。

execute() : 

2.0.0

抛出

RuntimeException

响应

bool

fetchArray

方法从结果集游标中获取一行作为数组。

fetchArray() : 

1.0

响应

mixed 结果集中的下一行或 false(如果没有更多行)。

fetchAssoc

方法从结果集游标中获取一行作为关联数组。

fetchAssoc() : 

1.0

响应

mixed 结果集中的下一行或 false(如果没有更多行)。

fetchObject

方法从结果集游标中获取一行作为对象。

fetchObject() : 

注意,在使用 StatementInterface::setFetchMode() 调用此方法之前,应配置获取模式。

1.0

响应

mixed 结果集中的下一行或 false(如果没有更多行)。

freeResult

方法释放结果集使用的内存。

freeResult() : 

1.0

响应

void

getAffectedRows

获取之前执行的 SQL 语句的影响行数。

getAffectedRows() : 

2.0.0

响应

int 上次操作中影响的行数

getAlterDbCharacterSet

返回用于更改数据库字符集的查询字符串。

getAlterDbCharacterSet( dbName) : 

1.6.0

参数

dbName

string 数据库名称

响应

string 更改数据库查询字符串的查询

getConnection

提供对底层数据库连接访问的方法。

getConnection() : 

1.0

响应

resource 底层数据库连接资源。

getConnectors

获取可用数据库连接器列表。

getConnectors() : mixed||string|int
static

该列表将仅填充存在类的连接器以及环境支持其使用情况的连接器。这使我们能够拥有大量的连接器类,这些类能够自我识别它们是否能够在给定系统上使用。

1.0

响应

array<string|int, mixed> 可用数据库连接器数组。

getCount

获取数据库驱动程序执行的 SQL 语句总数。

getCount() : 

1.0

响应

int

getCreateDatabaseQuery

返回用于创建新数据库的查询字符串。

getCreateDatabaseQuery(\stdClass options,  utf) : 

2.0.0

参数

options

stdClass 用于将用户和数据库名称传递给数据库驱动程序的对象。该对象必须设置 "db_name" 和 "db_user"。

utf

bool 如果数据库支持 UTF-8 字符集,则为 True。

响应

string 创建数据库的查询

getDatabase

获取此连接使用的数据库名称。

getDatabase() : 

1.0

响应

string

getDateFormat

返回符合数据库驱动程序的 PHP date() 函数的日期格式。

getDateFormat() : 

1.0

响应

string

getDispatcher

获取事件调度程序。

getDispatcher() : \Joomla\Event\DispatcherInterface
inherited

1.2.0

抛出

UnexpectedValueException 如果未设置调度程序,则可能引发。

响应

DispatcherInterface

getExporter

获取一个导出器类对象。

getExporter() : \Joomla\Database\DatabaseExporter

1.0

抛出

RuntimeException

响应

DatabaseExporter 一个导出器对象。

getImporter

获取一个导入器类对象。

getImporter() : \Joomla\Database\DatabaseImporter

1.0

响应

DatabaseImporter

getInstance

方法根据给定的选项返回一个 DatabaseDriver 实例。

getInstance(mixed||string|int options = []) : \Joomla\Database\DatabaseDriver
static 已弃用

有三个全局选项,其余选项特定于数据库驱动程序。

  • "driver" 选项定义使用哪个 DatabaseDriver 类进行连接 -- 默认值为 "mysqli"。
  • "database" 选项确定连接要使用哪个数据库。
  • "select" 选项确定连接器是否应该自动选择所选数据库。

实例对给定的选项是唯一的,新对象仅在向方法传递唯一的选项数组时才会创建。这确保我们不会创建不必要的数据库连接资源。

1.0

抛出

RuntimeException

已弃用

3.0 使用 DatabaseFactory::getDriver() 替换

参数

options

array<string|int, mixed> 要传递给数据库驱动程序的参数。

响应

DatabaseDriver

getIterator

获取当前查询的新迭代器。

getIterator( column = null,  class = stdClass::class) : \Joomla\Database\DatabaseIterator

1.0

参数

column

string 用作迭代器键的可选列。

class

string 返回的对象的类。

响应

DatabaseIterator

getMinimum

获取支持的最小数据库版本。

getMinimum() : 

1.0

响应

string

getMonitor

获取查询监控器。

getMonitor() : \Joomla\Database\QueryMonitorInterface|null

2.0.0

响应

QueryMonitorInterface|null 查询监控器或 null(如果未设置)。

getName

获取数据库驱动程序的名称。

getName() : 

如果 $this->name 未设置,它将尝试从类名称中猜测驱动程序名称。

1.4.0

响应

string

getNullDate

获取数据库驱动程序的时间戳的 null 或零表示。

getNullDate() : 

1.0

响应

string

getNumRows

获取之前执行的 SQL 语句返回的行数。

getNumRows() : 

2.0.0

响应

int 返回的行数。

getPrefix

获取数据库驱动程序的通用表前缀。

getPrefix() : 

1.0

响应

string 通用的数据库表前缀。

getQuery

获取当前查询对象或一个新的 DatabaseQuery 对象。

getQuery( new = false) : \Joomla\Database\DatabaseQuery

1.0

参数

new

bool False 表示返回当前查询对象,True 表示返回一个新的 DatabaseQuery 对象。$new 参数在 2.2 中已弃用,将在 4.0 中删除,请使用 createQuery() 替换。

响应

DatabaseQuery

getServerType

获取服务器系列类型。

getServerType() : 

如果 $this->serverType 未设置,它将尝试从驱动程序名称中猜测服务器系列类型。如果无法实现,则将改为返回驱动程序名称。

1.4.0

响应

string

getTableCreate

显示创建给定表的 CREATE 表语句。

getTableCreate( tables) : mixed||string|int
抽象

1.0

抛出

RuntimeException

参数

tables

mixed 一个表名或表名列表。

响应

array<string|int, mixed> 表的创建 SQL 列表。

hasUtfSupport

确定数据库引擎是否支持 UTF-8 字符编码。

hasUtfSupport() : 

1.0

响应

bool 如果数据库引擎支持 UTF-8 字符编码,则为 True。

insertObject

根据对象的属性将一行插入表中。

insertObject( table,  &object,  key = null) : 

1.0

抛出

RuntimeException

参数

table

string 要插入的数据库表的名称。

object

object 一个对象的引用,其公共属性与表字段匹配。

key

string 主键的名称。如果提供,则更新对象属性。

响应

bool

isMinimumVersion

方法用于检查已安装的数据库版本是否受数据库驱动程序支持

isMinimumVersion() : 

1.0

响应

bool 如果数据库版本受支持,则为 True

loadAssoc

方法从数据库查询中获取结果集的第一行作为 ['field_name' => 'row_value'] 的关联数组。

loadAssoc() : 

1.0

抛出

RuntimeException

响应

mixed 返回值或 null(如果查询失败)。

loadAssocList

方法从数据库查询中获取结果集行的数组,其中每一行都是 ['field_name' => 'row_value'] 的关联数组。行数组可以选择用字段名称作为键,但默认情况下为按顺序的数字数组。

loadAssocList( key = null,  column = null) : 

注意:选择用非唯一字段名称作为结果数组的键可能会导致意外行为,应避免。

1.0

抛出

RuntimeException

参数

key

string 用于为结果数组加键的字段的名称。

column

string 可选的列名称。结果数组中将只包含此列值,而不是整行。

响应

mixed 返回值或 null(如果查询失败)。

loadColumn

方法从数据库查询中获取结果集中每一行中 $offset 字段的值数组。

loadColumn( offset) : 

1.0

抛出

RuntimeException

参数

offset

int 用于构建结果数组的行偏移量。

响应

mixed 返回值或 null(如果查询失败)。

loadObject

方法从数据库查询中获取结果集的第一行作为对象。

loadObject( class = stdClass::class) : 

1.0

抛出

RuntimeException

参数

class

string用于返回行对象的类名。

响应

mixed 返回值或 null(如果查询失败)。

loadObjectList

方法从数据库查询中获取结果集行的数组,其中每行都是一个对象。该对象数组可以可选地按字段名称进行索引,但默认为顺序数字数组。

loadObjectList( key = '',  class = stdClass::class) : 

注意:选择用非唯一字段名称作为结果数组的键可能会导致意外行为,应避免。

1.0

抛出

RuntimeException

参数

key

string 用于为结果数组加键的字段的名称。

class

string用于返回行对象的类名。

响应

mixed 返回值或 null(如果查询失败)。

loadResult

方法从数据库查询中获取结果集第一行的第一个字段。

loadResult() : 

1.0

抛出

RuntimeException

响应

mixed 返回值或 null(如果查询失败)。

loadRow

方法将数据库查询结果集的第一行作为数组获取。

loadRow() : 

列按数字索引,因此结果集中的第一列可以通过 $row[0] 等访问。

1.0

抛出

RuntimeException

响应

mixed 返回值或 null(如果查询失败)。

loadRowList

方法从数据库查询中获取结果集行的数组,其中每行都是一个数组。该对象数组可以可选地按字段偏移量进行索引,但默认为顺序数字数组。

loadRowList( key = null) : mixed||string|int

注意:选择按非唯一字段对结果数组进行索引会导致意外行为,应避免此操作。

1.0

抛出

RuntimeException

参数

key

string 用于为结果数组加键的字段的名称。

响应

array<string|int, mixed>结果数组。

prepareStatement

准备 SQL 语句以供执行

prepareStatement( query) : \Joomla\Database\StatementInterface
抽象

2.0.0

抛出

PrepareStatementFailureException

参数

query

string要准备的 SQL 查询。

响应

StatementInterface

q

quote 方法的别名

q(array|string text,  escape = true) : 

1.0

参数

text

array<string|int, mixed>|string要引用的字符串或字符串数组。每种类型都支持点符号名称。

escape

bool是否转义字符串,默认为 true,如果为 false,则不进行转义。

响应

string引用的输入字符串。

qn

quoteName 方法的别名

qn(array|string name, array|string as = null) : array|string

1.0

参数

name

array<string|int, mixed>|string要包装在引号中的标识符名称,或要包装在引号中的标识符名称数组。每种类型都支持点符号名称。

as

array<string|int, mixed>|string与 $name 关联的 AS 查询部分。它可以是字符串或数组,在后一种情况下,它必须与 $name 的长度相同;如果为 null,则字符串或数组元素将没有 AS 部分。

响应

array<string|int, mixed>|string引用的名称,与 $name 的类型相同。

quote

引用字符串并根据数据库要求进行转义(可选),以用于数据库查询。

quote(array|string text,  escape = true) : array|string

1.0

参数

text

array<string|int, mixed>|string要引用的字符串或字符串数组。每种类型都支持点符号名称。

escape

bool是否转义字符串,默认为 true,如果为 false,则不进行转义。

响应

array<string|int, mixed>|string引用的输入字符串。

quoteBinary

根据数据库要求引用二进制字符串,以用于数据库查询。

quoteBinary( data) : 

1.7.0

参数

data

string要引用的二进制字符串。

响应

string引用的二进制输入字符串。

quoteName

将 SQL 语句标识符名称(如列名、表名或数据库名)包装在引号中,以防止注入风险和保留字冲突。

quoteName(array|string name, array|string as = null) : array|string

1.0

参数

name

array<string|int, mixed>|string要包装在引号中的标识符名称,或要包装在引号中的标识符名称数组。每种类型都支持点符号名称。

as

array<string|int, mixed>|string与 $name 关联的 AS 查询部分。它可以是字符串或数组,在后一种情况下,它必须与 $name 的长度相同;如果为 null,则字符串或数组元素将没有 AS 部分。

响应

array<string|int, mixed>|string引用的名称,与 $name 的类型相同。

quoteNameStr

引用来自 quoteName 调用的字符串。

quoteNameStr(mixed||string|int strArr) : 
已弃用

1.0

已弃用

2.0 使用 quoteNameString 代替

参数

strArr

array<string|int, mixed>来自 quoteName 点爆炸的字符串数组。

响应

string引用的部分的点连接字符串。

quoteNameString

引用来自 quoteName 调用的字符串。

quoteNameString( name,  asSinglePart = false) : 

1.7.0

参数

name

string要引用的标识符名称。

asSinglePart

bool将名称视为标识符的单个部分。

响应

string引用的标识符字符串。

replacePrefix

此函数将字符串标识符替换为配置的表前缀。

replacePrefix( sql,  prefix = '#__') : 

1.0

参数

sql

string要准备的 SQL 语句。

prefix

string表前缀。

响应

string处理后的 SQL 语句。

setDispatcher

设置要使用的调度程序。

setDispatcher(\Joomla\Event\DispatcherInterface dispatcher) : 
inherited

1.2.0

参数

dispatcher

DispatcherInterface要使用的调度程序。

响应

$this

setMonitor

设置查询监视器。

setMonitor(\Joomla\Database\QueryMonitorInterface|null monitor = null) : 

2.0.0

参数

monitor

QueryMonitorInterface|null查询监视器。

响应

$this

setQuery

设置 SQL 语句字符串以供以后执行。

setQuery(string|\Joomla\Database\QueryInterface query,  offset,  limit) : 

1.0

抛出

InvalidArgumentException

参数

query

string|QueryInterface要设置的 SQL 语句,可以是查询对象或字符串。

offset

int要设置的受影响行偏移量。{@deprecated 使用 LimitableInterface::setLimit() 代替}

limit

int要设置的最大受影响行数。{@deprecated 使用 LimitableInterface::setLimit() 代替}

响应

$this

setUtf

设置连接以使用 UTF-8 字符编码。

setUtf() : 
抽象

1.0

响应

bool成功时为 true。

splitSql

将多个查询的字符串拆分为单个查询的数组。

splitSql( sql) : mixed||string|int
static

1.0

参数

sql

string要拆分为单个查询的输入 SQL 字符串。

响应

array<string|int, mixed>

truncateTable

截断表的方法。

truncateTable( table) : 

1.0

抛出

RuntimeException

参数

table

string要截断的表。

响应

void

updateObject

根据对象的属性更新表中的行。

updateObject( table,  &object, array|string key,  nulls = false) : 

1.0

抛出

RuntimeException

参数

table

string要更新的数据库表的名称。

object

object 一个对象的引用,其公共属性与表字段匹配。

key

array<string|int, mixed>|string主键的名称。

nulls

bool是否更新空字段,如果为 true,则更新,如果为 false,则忽略。

响应

bool成功时为 true。

Properties

dispatcher

事件调度程序

inherited

1.2.0

Type(s)

DispatcherInterface|null

database

数据库的名称。

1.0

Type(s)

string

name

数据库驱动程序的名称。

1.0

Type(s)

string

serverType

此驱动程序支持的数据库服务器系列的类型。

1.4.0

Type(s)

string

connection

数据库连接资源。

1.0

Type(s)

resource

connectors

保存可用数据库连接器的列表。

static

1.0

Type(s)

array<string|int, mixed>

count

数据库驱动程序执行的 SQL 语句数量。

1.0

Type(s)

int

cursor

上次查询的数据库连接游标。

1.0

Type(s)

resource

executed

包含当前查询执行状态

2.0.0

Type(s)

bool

limit

当前 SQL 语句的受影响行限制。

1.0

Type(s)

int

nameQuote

用于引用 SQL 语句名称(如表名或字段名等)的字符。

如果为单个字符字符串,则在引用的名称的两侧使用相同的字符,否则将使用第一个字符作为开始引号,使用第二个字符作为结束引号。

1.0

Type(s)

string

nullDate

数据库驱动程序的时间戳的空值或零值表示。

1.0

Type(s)

string

offset

要应用于当前 SQL 语句的受影响行偏移量。

1.0

Type(s)

int

options

在实例化时传入并保存。

1.0

Type(s)

array<string|int, mixed>

sql

要执行的当前 SQL 语句。

1.0

Type(s)

混合

statement

准备好的语句。

2.0.0

Type(s)

StatementInterface

tablePrefix

常见的数据库表前缀。

1.0

Type(s)

string

utf

如果数据库引擎支持 UTF-8 字符编码,则为 true。

1.0

Type(s)

bool

errorNum

数据库错误号。

1.0

Type(s)

int

errorMsg

数据库错误消息。

1.0

Type(s)

string

instances

DatabaseDriver 实例容器。

static 已弃用

1.0

已弃用

3.0 将不再支持单例存储。

Type(s)

array<string|int, DatabaseDriver>

dbMinimum

支持的最低数据库版本。

static

1.0

Type(s)

string

transactionDepth

当前事务的深度。

1.0

Type(s)

int

factory

DatabaseFactory 对象

2.0.0

Type(s)

DatabaseFactory

monitor

查询监视器对象

2.0.0

Type(s)

QueryMonitorInterface