PdoDriver

扩展 DatabaseDriver

Joomla 框架 PDO 数据库驱动类

抽象
链接

1.0

Joomla 框架

方法

__construct

构造函数。

__construct(mixed||string|int options) : 

1.0

参数

options

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

响应

混合

__destruct

析构函数。

__destruct() : 

1.0

响应

混合

__get

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

__get( name) : 
继承 已弃用

1.4.0

已弃用

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

参数

name

string属性的名称。

响应

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

__sleep

PDO 不支持序列化

__sleep() : mixed||string|int

1.0

响应

array<string|int, mixed>

__wakeup

序列化后唤醒

__wakeup() : 

1.0

响应

void

alterDbCharacterSet

更改数据库的字符集。

alterDbCharacterSet( dbName) : bool|resource
继承

2.0.0

抛出

RuntimeException

参数

dbName

string要更改的数据库名称

响应

bool|resource

connect

如果需要,连接到数据库。

connect() : 

1.0

抛出

RuntimeException

响应

void如果数据库连接成功,则返回 void。

connected

确定与服务器的连接是否处于活动状态。

connected() : 

1.0

抛出

LogicException

响应

bool如果已连接到数据库引擎,则为 True。

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

escape

用于在 SQL 语句中转义字符串的方法。

escape( text,  extra = false) : 

Oracle 转义参考:http://www.orafaq.com/wiki/SQL_FAQ#How_does_one_escape_special_characters_when_writing_SQL_queries.3F

SQLite 转义说明:http://www.sqlite.org/faq.html#q14

方法主体由 Zend Framework 实现

注意:使用具有绑定变量的查询对象比下面方法更可取。

1.0

参数

text

string要转义的字符串。

extra

bool未使用的可选参数,用于提供额外的转义。

响应

string转义后的字符串。

execute

执行 SQL 语句。

execute() : 

1.0

抛出

Exception

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更改数据库查询字符串的查询

getConnectedQuery

获取要运行的查询并验证数据库是否正常运行。

getConnectedQuery() : 

1.0

响应

string用于检查 DB 健康状况的查询。

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
继承

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返回的行数。

getOption

检索 PDO 数据库连接属性 https://php.ac.cn/manual/en/pdo.getattribute.php

getOption( key) : 

用法:$db->getOption(PDO::ATTR_CASE);

1.0

参数

key

mixedPDO::ATTR_* 常量之一

响应

混合

getPrefix

获取数据库驱动程序的公共表前缀。

getPrefix() : 
继承

1.0

响应

string公共数据库表前缀。

getQuery

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

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

1.0

参数

new

boolFalse 返回当前查询对象,True 返回新的 DatabaseQuery 对象。$new 参数在 2.2 中已弃用,将在 4.0 中删除,使用 createQuery() 代替。

响应

DatabaseQuery

getServerType

获取服务器系列类型。

getServerType() : 
继承

如果 $this->serverType 未设置,它将尝试从驱动程序名称中猜测服务器系列类型。如果这不可行,将返回驱动程序名称。

1.4.0

响应

string

getTableCreate

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

getTableCreate( tables) : mixed||string|int
继承 abstract

1.0

抛出

RuntimeException

参数

tables

mixed表名或表名列表。

响应

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

getVersion

获取数据库连接器的版本。

getVersion() : 

1.5.0

响应

string数据库连接器版本。

hasUtfSupport

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

hasUtfSupport() : 
继承

1.0

响应

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

insertid

获取最后一条 INSERT 语句的自增值的方法。

insertid() : 

1.0

响应

string最后插入行的自增字段的值。

insertObject

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

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

1.0

抛出

RuntimeException

参数

table

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

object

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

key

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

响应

bool

isMinimumVersion

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

isMinimumVersion() : 
继承

1.0

响应

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

isSupported

测试 PDO 扩展是否可用。

isSupported() : 
static

根据需要重写以检查特定 PDO 驱动程序。

1.0

响应

bool成功时为 True,否则为 False。

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

boolTrue(默认)表示转义字符串,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

boolTrue(默认)表示转义字符串,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 语句。

select

选择一个数据库以供使用。

select( database) : 

1.0

抛出

RuntimeException

参数

database

string要选择以供使用的数据库的名称。

响应

bool如果数据库成功选择,则为 True。

setDispatcher

设置要使用的调度程序。

setDispatcher(\Joomla\Event\DispatcherInterface dispatcher) : 
继承

1.2.0

参数

dispatcher

DispatcherInterface要使用的调度程序。

响应

$this

setMonitor

设置查询监控器。

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

2.0.0

参数

monitor

QueryMonitorInterface|null查询监控器。

响应

$this

setOption

在 PDO 数据库句柄上设置属性。

setOption( key,  value) : 

https://php.ac.cn/manual/en/pdo.setattribute.php

用法:$db->setOption(PDO::ATTR_CASE, PDO::CASE_UPPER);

1.0

参数

key

intPDO::ATTR_* 常量之一

value

mixed与特定属性键相关的 PDO 常量之一。

响应

bool

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>

transactionCommit

提交事务的方法。

transactionCommit( toSavepoint = false) : 

1.0

抛出

RuntimeException

参数

toSavepoint

bool如果为 True,则提交到最后一个保存点。

响应

void

transactionRollback

回滚事务的方法。

transactionRollback( toSavepoint = false) : 

1.0

抛出

RuntimeException

参数

toSavepoint

bool如果为 True,则回滚到最后一个保存点。

响应

void

transactionStart

初始化事务的方法。

transactionStart( asSavepoint = false) : 

1.0

抛出

RuntimeException

参数

asSavepoint

bool如果为 True 且事务已激活,则将创建一个保存点。

响应

void

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 则更新 null 字段,如果为 False 则忽略 null 字段。

响应

bool成功时为 True。

Properties

dispatcher

事件调度程序

继承

1.2.0

类型

DispatcherInterface|null

database

数据库的名称。

继承

1.0

类型

string

name

数据库驱动的名称。

1.0

类型

string

serverType

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

继承

1.4.0

类型

string

connection

数据库连接资源。

1.0

类型

PDO

connectors

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

继承 static

1.0

类型

array<string|int, mixed>

count

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

继承

1.0

类型

int

cursor

最后一次查询的数据库连接游标。

继承

1.0

类型

resource

executed

包含当前查询执行状态

继承

2.0.0

类型

bool

limit

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

继承

1.0

类型

int

nameQuote

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

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

1.0

类型

string

nullDate

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

1.0

类型

string

offset

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

继承

1.0

类型

int

options

在实例化时传入并保存。

继承

1.0

类型

array<string|int, mixed>

sql

当前要执行的 SQL 语句。

继承

1.0

类型

混合

statement

准备好的语句。

继承

2.0.0

类型

StatementInterface

tablePrefix

通用的数据库表前缀。

继承

1.0

类型

string

utf

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

继承

1.0

类型

bool

errorNum

数据库错误号。

继承

1.0

类型

int

errorMsg

数据库错误消息。

继承

1.0

类型

string

instances

DatabaseDriver 实例容器。

继承 static 已弃用

1.0

已弃用

3.0 单例存储将不再受支持。

类型

array<string|int, DatabaseDriver>

dbMinimum

支持的最低数据库版本。

继承 static

1.0

类型

string

transactionDepth

当前事务的深度。

继承

1.0

类型

int

factory

DatabaseFactory 对象

继承

2.0.0

类型

DatabaseFactory

monitor

查询监控器对象

继承

2.0.0

类型

QueryMonitorInterface