DatabaseDriver
实现 DatabaseInterface, DispatcherAwareInterfaceJoomla 框架数据库驱动类
自 |
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 |
---|---|
抛出 |
|
参数
- dbName
string
将要更改的数据库名称
响应
bool|resource
createDatabase
使用 $options 对象中的信息创建一个新数据库。
createDatabase(\stdClass options, utf = true) : bool|resource
自 |
2.0.0 |
---|---|
抛出 |
|
参数
- options
stdClass
用于将用户和数据库名称传递给数据库驱动程序的对象。该对象必须设置 "db_name" 和 "db_user"。- utf
bool
如果数据库支持 UTF-8 字符集,则为 True。
响应
bool|resource
createQuery
创建一个新的 DatabaseQuery 对象。
createQuery() : \Joomla\Database\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) :
dropTable
从数据库中删除一个表。
dropTable( table, ifExists = true) :
自 |
2.0.0 |
---|---|
抛出 |
|
参数
- table
string
要删除的数据库表的名称。- ifExists
bool
可选地指定表必须存在才能删除。
响应
$this
execute
执行 SQL 语句。
execute() :
自 |
2.0.0 |
---|---|
抛出 |
|
响应
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
该列表将仅填充存在类的连接器以及环境支持其使用情况的连接器。这使我们能够拥有大量的连接器类,这些类能够自我识别它们是否能够在给定系统上使用。
自 |
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
getExporter
获取一个导出器类对象。
getExporter() : \Joomla\Database\DatabaseExporter
getInstance
方法根据给定的选项返回一个 DatabaseDriver 实例。
getInstance(mixed||string|int options = []) : \Joomla\Database\DatabaseDriver
有三个全局选项,其余选项特定于数据库驱动程序。
- "driver" 选项定义使用哪个 DatabaseDriver 类进行连接 -- 默认值为 "mysqli"。
- "database" 选项确定连接要使用哪个数据库。
- "select" 选项确定连接器是否应该自动选择所选数据库。
实例对给定的选项是唯一的,新对象仅在向方法传递唯一的选项数组时才会创建。这确保我们不会创建不必要的数据库连接资源。
自 |
1.0 |
---|---|
抛出 |
|
已弃用 |
3.0 使用 DatabaseFactory::getDriver() 替换 |
参数
- options
array<string|int, mixed>
要传递给数据库驱动程序的参数。
响应
getIterator
获取当前查询的新迭代器。
getIterator( column = null, class = stdClass::class) : \Joomla\Database\DatabaseIterator
getMinimum
获取支持的最小数据库版本。
getMinimum() :
自 |
1.0 |
---|
响应
string
getMonitor
获取查询监控器。
getMonitor() : \Joomla\Database\QueryMonitorInterface|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() 替换。
响应
getServerType
获取服务器系列类型。
getServerType() :
如果 $this->serverType 未设置,它将尝试从驱动程序名称中猜测服务器系列类型。如果无法实现,则将改为返回驱动程序名称。
自 |
1.4.0 |
---|
响应
string
getTableCreate
显示创建给定表的 CREATE 表语句。
getTableCreate( tables) : mixed||string|int
自 |
1.0 |
---|---|
抛出 |
|
参数
- 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 |
---|---|
抛出 |
|
参数
- table
string
要插入的数据库表的名称。- object
object
一个对象的引用,其公共属性与表字段匹配。- key
string
主键的名称。如果提供,则更新对象属性。
响应
bool
isMinimumVersion
方法用于检查已安装的数据库版本是否受数据库驱动程序支持
isMinimumVersion() :
自 |
1.0 |
---|
响应
bool
如果数据库版本受支持,则为 True
loadAssoc
方法从数据库查询中获取结果集的第一行作为 ['field_name' => 'row_value'] 的关联数组。
loadAssoc() :
自 |
1.0 |
---|---|
抛出 |
|
响应
mixed
返回值或 null(如果查询失败)。
loadAssocList
方法从数据库查询中获取结果集行的数组,其中每一行都是 ['field_name' => 'row_value'] 的关联数组。行数组可以选择用字段名称作为键,但默认情况下为按顺序的数字数组。
loadAssocList( key = null, column = null) :
注意:选择用非唯一字段名称作为结果数组的键可能会导致意外行为,应避免。
自 |
1.0 |
---|---|
抛出 |
|
参数
- key
string
用于为结果数组加键的字段的名称。- column
string
可选的列名称。结果数组中将只包含此列值,而不是整行。
响应
mixed
返回值或 null(如果查询失败)。
loadColumn
方法从数据库查询中获取结果集中每一行中 $offset 字段的值数组。
loadColumn( offset) :
自 |
1.0 |
---|---|
抛出 |
|
参数
- offset
int
用于构建结果数组的行偏移量。
响应
mixed
返回值或 null(如果查询失败)。
loadObject
方法从数据库查询中获取结果集的第一行作为对象。
loadObject( class = stdClass::class) :
自 |
1.0 |
---|---|
抛出 |
|
参数
- class
string
用于返回行对象的类名。
响应
mixed
返回值或 null(如果查询失败)。
loadObjectList
方法从数据库查询中获取结果集行的数组,其中每行都是一个对象。该对象数组可以可选地按字段名称进行索引,但默认为顺序数字数组。
loadObjectList( key = '', class = stdClass::class) :
注意:选择用非唯一字段名称作为结果数组的键可能会导致意外行为,应避免。
自 |
1.0 |
---|---|
抛出 |
|
参数
- key
string
用于为结果数组加键的字段的名称。- class
string
用于返回行对象的类名。
响应
mixed
返回值或 null(如果查询失败)。
loadResult
方法从数据库查询中获取结果集第一行的第一个字段。
loadResult() :
自 |
1.0 |
---|---|
抛出 |
|
响应
mixed
返回值或 null(如果查询失败)。
loadRow
方法将数据库查询结果集的第一行作为数组获取。
loadRow() :
列按数字索引,因此结果集中的第一列可以通过 $row[0] 等访问。
自 |
1.0 |
---|---|
抛出 |
|
响应
mixed
返回值或 null(如果查询失败)。
loadRowList
方法从数据库查询中获取结果集行的数组,其中每行都是一个数组。该对象数组可以可选地按字段偏移量进行索引,但默认为顺序数字数组。
loadRowList( key = null) : mixed||string|int
注意:选择按非唯一字段对结果数组进行索引会导致意外行为,应避免此操作。
自 |
1.0 |
---|---|
抛出 |
|
参数
- key
string
用于为结果数组加键的字段的名称。
响应
array<string|int, mixed>
结果数组。
prepareStatement
准备 SQL 语句以供执行
prepareStatement( query) : \Joomla\Database\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) :
setMonitor
设置查询监视器。
setMonitor(\Joomla\Database\QueryMonitorInterface|null monitor = null) :
setQuery
设置 SQL 语句字符串以供以后执行。
setQuery(string|\Joomla\Database\QueryInterface query, offset, limit) :
自 |
1.0 |
---|---|
抛出 |
|
参数
- 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
自 |
1.0 |
---|
参数
- sql
string
要拆分为单个查询的输入 SQL 字符串。
响应
array<string|int, mixed>
truncateTable
截断表的方法。
truncateTable( table) :
自 |
1.0 |
---|---|
抛出 |
|
参数
- table
string
要截断的表。
响应
void
updateObject
根据对象的属性更新表中的行。
updateObject( table, &object, array|string key, nulls = false) :
自 |
1.0 |
---|---|
抛出 |
|
参数
- table
string
要更新的数据库表的名称。- object
object
一个对象的引用,其公共属性与表字段匹配。- key
array<string|int, mixed>|string
主键的名称。- nulls
bool
是否更新空字段,如果为 true,则更新,如果为 false,则忽略。
响应
bool
成功时为 true。
Properties
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
保存可用数据库连接器的列表。
自 |
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)
混合
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 实例容器。
dbMinimum
支持的最低数据库版本。
自 |
1.0 |
---|
Type(s)
string
transactionDepth
当前事务的深度。
自 |
1.0 |
---|
Type(s)
int