SqlsrvDriver
扩展 DatabaseDriverSQL Server 数据库驱动程序
链接 | |
---|---|
自版本 |
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 由于 $this->name 之前是公有的,因此这是一个向后兼容的代理 |
参数
- name
string
属性的名称。
返回值
mixed
如果属性名称有效,则为一个值,否则为 null。
alterDbCharacterSet
更改数据库的字符集。
alterDbCharacterSet( dbName) : bool|resource
自版本 |
2.0.0 |
---|---|
抛出 |
|
参数
- dbName
string
将被更改的数据库名称
返回值
布尔值|资源
checkFieldExists
用于检查表中是否存在字段的方法。
checkFieldExists( table, field) :
自版本 |
1.0 |
---|
参数
- table
string
要验证字段的表。- field
string
要验证的字段。
返回值
bool
如果字段存在于表中,则为 true。
connect
根据需要连接到数据库。
connect() :
自版本 |
1.0 |
---|---|
抛出 |
|
返回值
void
如果数据库连接成功,则返回 void。
connected
确定与服务器的连接是否处于活动状态。
connected() :
自版本 |
1.0 |
---|
返回值
bool
如果已连接到数据库引擎,则为 true。
createDatabase
使用来自 $options 对象的信息创建一个新的数据库。
createDatabase(\stdClass options, utf = true) : bool|resource
自版本 |
2.0.0 |
---|---|
抛出 |
|
参数
- options
stdClass
用于将用户和数据库名称传递给数据库驱动程序的对象。此对象必须设置 "db_name" 和 "db_user"。- utf
bool
如果数据库支持 UTF-8 字符集,则为 true。
返回值
布尔值|资源
createQuery
创建一个新的 DatabaseQuery 对象。
createQuery() : \Joomla\Database\QueryInterface
decodeBinary
用原始字符串替换表示二进制字段的特殊占位符。
decodeBinary(string|resource data) :
自版本 |
1.7.0 |
---|
参数
- data
string|resource
编码的字符串或资源。
返回值
string
原始字符串。
disconnect
断开数据库连接。
disconnect() :
自版本 |
1.0 |
---|
返回值
void
dispatchEvent
分派事件。
dispatchEvent(\Joomla\Event\EventInterface event) :
dropTable
从数据库中删除一个表。
dropTable( table, ifExists = true) :
自版本 |
1.0 |
---|
参数
- table
string
要删除的数据库表的名称。- ifExists
bool
可选地指定表必须存在才能删除。
返回值
$this
escape
用于转义 SQL 语句中使用的字符串的方法。
escape( text, extra = false) :
尽管这将是一个不错的功能,但 MSSQL 的转义并未在驱动程序中处理。因此,我们需要自己处理转义。
自版本 |
1.0 |
---|
参数
- text
string
要转义的字符串。- extra
bool
可选参数,提供额外的转义。
返回值
string
转义后的字符串。
execute
执行 SQL 语句。
execute() :
自版本 |
1.0 |
---|---|
抛出 |
|
返回值
布尔值
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
更改数据库查询字符串的查询
getCollation
用于通过对数据库中表的文本字段进行采样来获取数据库中使用的排序规则的方法。
getCollation() : string|bool
自版本 |
1.0 |
---|
返回值
string|bool
数据库中使用的排序规则或布尔值 false(如果不受支持)。
getConnection
提供对底层数据库连接的访问的方法。
getConnection() :
自版本 |
1.0 |
---|
返回值
resource
底层数据库连接资源。
getConnectionCollation
用于通过对数据库中表的文本字段进行采样来获取数据库连接中使用的排序规则的方法。
getConnectionCollation() : string|bool
自版本 |
1.6.0 |
---|---|
抛出 |
|
返回值
string|bool
数据库连接中使用的排序规则(字符串)或布尔值 false(如果不受支持)。
getConnectionEncryption
用于获取正在使用的数据库加密详细信息(密码和协议)的方法。
getConnectionEncryption() :
自版本 |
2.0.0 |
---|---|
抛出 |
|
返回值
string
数据库加密详细信息。
getConnectors
获取可用数据库连接器的列表。
getConnectors() : mixed||string|int
此列表仅填充存在类的连接器,并且环境支持其使用。这使我们能够拥有大量连接器类,这些类能够自行识别它们是否能够在给定系统上使用。
自版本 |
1.0 |
---|
返回值
array<string|int, mixed>
可用数据库连接器的数组。
getCount
获取数据库驱动程序执行的 SQL 语句总数。
getCount() :
自版本 |
1.0 |
---|
返回值
整数
getCreateDatabaseQuery
返回创建新数据库的查询字符串。
getCreateDatabaseQuery(\stdClass options, utf) :
自版本 |
2.0.0 |
---|
参数
- options
stdClass
用于将用户和数据库名称传递给数据库驱动程序的对象。此对象必须设置 "db_name" 和 "db_user"。- utf
bool
如果数据库支持 UTF-8 字符集,则为 true。
返回值
string
创建数据库的查询
getDatabase
获取此连接使用的数据库名称。
getDatabase() :
自版本 |
1.0 |
---|
返回值
字符串
getDateFormat
返回与数据库驱动程序兼容的 PHP date() 函数日期格式。
getDateFormat() :
自版本 |
1.0 |
---|
返回值
字符串
getDispatcher
获取事件分派器。
getDispatcher() : \Joomla\Event\DispatcherInterface
getExporter
获取导出器类对象。
getExporter() : \Joomla\Database\DatabaseExporter
getImporter
获取导入器类对象。
getImporter() : \Joomla\Database\DatabaseImporter
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 |
---|
返回值
字符串
getMonitor
获取查询监视器。
getMonitor() : \Joomla\Database\QueryMonitorInterface|null
getName
获取数据库驱动程序的名称。
getName() :
如果未设置 $this->name,它将尝试从类名称中猜测驱动程序名称。
自版本 |
1.4.0 |
---|
返回值
字符串
getNullDate
获取数据库驱动程序的时间戳的 null 或零表示形式。
getNullDate() :
自版本 |
1.0 |
---|
返回值
字符串
getNumRows
获取先前执行的 SQL 语句返回的行数。
getNumRows() :
自版本 |
2.0.0 |
---|
返回值
int
返回的行数。
getPrefix
获取数据库驱动程序的常用表前缀。
getPrefix() :
自版本 |
1.0 |
---|
返回值
string
常用的数据库表前缀。
getQuery
获取当前查询对象或新的 DatabaseQuery 对象。
getQuery( new = false) : \Joomla\Database\DatabaseQuery
自版本 |
1.0 |
---|
参数
- 新建
bool
如果为 False,则返回当前查询对象;如果为 True,则返回一个新的 DatabaseQuery 对象。$new 参数在 2.2 版中已弃用,将在 4.0 版中移除,请改用 createQuery()。
返回值
getServerType
获取服务器系列类型。
getServerType() :
如果 $this->serverType 未设置,则会尝试从驱动程序名称中猜测服务器系列类型。如果无法确定,则会返回驱动程序名称。
自版本 |
1.4.0 |
---|
返回值
字符串
getTableColumns
检索给定表的字段信息。
getTableColumns( table, typeOnly = true) : mixed||string|int
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- table
mixed
表名- typeOnly
bool
如果为 True,则仅返回字段类型。
返回值
array<string|int, mixed>
字段数组。
getTableConstraints
获取表约束
getTableConstraints( tableName) : mixed||string|int
自版本 |
1.0 |
---|
参数
- tableName
string
数据库表名。
返回值
array<string|int, mixed>
表可用的任何约束。
getTableCreate
显示创建给定表的表 CREATE 语句。
getTableCreate( tables) : mixed||string|int
MSSQL 不支持此功能。
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- tables
mixed
表名或表名列表。
返回值
array<string|int, mixed>
表的创建 SQL 列表。
getTableKeys
获取表的键详细信息列表。
getTableKeys( table) : mixed||string|int
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- table
string
表名。
返回值
array<string|int, mixed>
表的列规范数组。
getTableList
获取数据库中所有表的数组的方法。
getTableList() : mixed||string|int
自版本 |
1.0 |
---|---|
抛出 |
|
返回值
array<string|int, mixed>
数据库中所有表的数组。
getVersion
获取数据库连接器的版本。
getVersion() :
自版本 |
1.0 |
---|
返回值
string
数据库连接器版本。
hasUtfSupport
确定数据库引擎是否支持 UTF-8 字符编码。
hasUtfSupport() :
自版本 |
1.0 |
---|
返回值
bool
如果数据库引擎支持 UTF-8 字符编码,则为 True。
insertid
获取上次 INSERT 语句的自动递增值的方法。
insertid() :
自版本 |
1.0 |
---|
返回值
int
上次插入行的自动递增字段的值。
insertObject
根据对象的属性将一行插入表中。
insertObject( table, &object, key = null) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- table
string
要插入的数据库表名。- object
object
对对象的引用,其公共属性与表字段匹配。- key
string
主键名称。如果提供,则更新对象属性。
返回值
bool
成功时为 True。
isConnectionEncryptionSupported
测试数据库 TLS 连接加密是否受支持的方法。
isConnectionEncryptionSupported() :
自版本 |
2.0.0 |
---|
返回值
bool
数据库是否支持 TLS 连接加密。
isMinimumVersion
检查安装的数据库版本是否受数据库驱动程序支持的方法
isMinimumVersion() :
自版本 |
1.0 |
---|
返回值
bool
如果数据库版本受支持,则为 True
isSupported
测试 SQLSRV 连接器是否可用。
isSupported() :
自版本 |
1.0 |
---|
返回值
bool
成功时为 True,否则为 False。
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>
结果数组。
lockTable
锁定数据库中的表。
lockTable( tableName) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- tableName
string
要锁定的表名。
返回值
$this
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( text, escape = true) :
自版本 |
1.6.0 |
---|
参数
- text
mixed
要引用的字符串或字符串数组。- escape
bool
True(默认值)表示转义字符串,False 表示保持不变。
返回值
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
引用的标识符字符串。
renameConstraints
重命名约束。
renameConstraints(mixed||string|int constraints = [], prefix = null, backup = null) :
自版本 |
1.0 |
---|
参数
- constraints
array<string|int, mixed>
表约束数组(字符串)。- prefix
string
字符串- backup
string
字符串
返回值
void
renameTable
重命名数据库中的表。
renameTable( oldTable, newTable, backup = null, prefix = null) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- oldTable
string
要重命名的表名- newTable
string
表的新的名称。- backup
string
表前缀- prefix
string
用于表的 - 用于在非 MySQL 数据库中重命名约束
返回值
$this
replacePrefix
此函数将字符串标识符替换为配置的表前缀。
replacePrefix( sql, prefix = '#__') :
自版本 |
1.0 |
---|
参数
- sql
string
要准备的 SQL 语句。- prefix
string
表前缀。
返回值
string
处理后的 SQL 语句。
select
选择要使用的数据库。
select( database) :
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 语句,可以是 Query 对象或字符串。- 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>
transactionCommit
提交事务的方法。
transactionCommit( toSavepoint = false) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- toSavepoint
bool
如果为 True,则提交到最后一个保存点。
返回值
void
transactionRollback
回滚事务的方法。
transactionRollback( toSavepoint = false) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- toSavepoint
bool
如果为 True,则回滚到最后一个保存点。
返回值
void
transactionStart
初始化事务的方法。
transactionStart( asSavepoint = false) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- asSavepoint
bool
如果为 True 且事务已处于活动状态,则会创建一个保存点。
返回值
void
truncateTable
截断表的方法。
truncateTable( table) :
自版本 |
1.0 |
---|---|
抛出 |
|
参数
- table
string
要截断的表
返回值
void
unlockTables
解锁数据库中的表。
unlockTables() :
自版本 |
1.0 |
---|---|
抛出 |
|
返回值
$this
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。
属性
database
数据库名称。
自版本 |
1.0 |
---|
类型
字符串
name
数据库驱动程序名称。
自版本 |
1.0 |
---|
类型
字符串
serverType
此驱动程序支持的数据库服务器系列类型。
自版本 |
1.4.0 |
---|
类型
字符串
connection
数据库连接资源。
自版本 |
1.0 |
---|
类型
resource
connectors
保存可用数据库连接器的列表。
自版本 |
1.0 |
---|
类型
array<string|int, mixed>
count
数据库驱动程序执行的 SQL 语句数。
自版本 |
1.0 |
---|
类型
整数
cursor
上次查询的数据库连接游标。
自版本 |
1.0 |
---|
类型
resource
executed
包含当前查询执行状态
自版本 |
2.0.0 |
---|
类型
布尔值
limit
当前 SQL 语句的受影响行限制。
自版本 |
1.0 |
---|
类型
整数
nameQuote
用于引用 SQL 语句名称(如表名或字段名等)的字符。
如果为单个字符字符串,则引号名称的两侧都使用相同的字符;否则,第一个字符将用作开始引号,第二个字符将用作结束引号。
自版本 |
1.0 |
---|
类型
字符串
nullDate
数据库驱动程序的时间戳的空值或零值表示形式。
自版本 |
1.0 |
---|
类型
字符串
offset
要应用于当前 SQL 语句的受影响行偏移量。
自版本 |
1.0 |
---|
类型
整数
options
在实例化时传入并保存。
自版本 |
1.0 |
---|
类型
array<string|int, mixed>
sql
要执行的当前 SQL 语句。
自版本 |
1.0 |
---|
类型
混合类型
tablePrefix
公共数据库表前缀。
自版本 |
1.0 |
---|
类型
字符串
utf
如果数据库引擎支持 UTF-8 字符编码,则为 True。
自版本 |
1.0 |
---|
类型
布尔值
errorNum
数据库错误号。
自版本 |
1.0 |
---|
类型
整数
errorMsg
数据库错误消息。
自版本 |
1.0 |
---|
类型
字符串
instances
DatabaseDriver 实例容器。
dbMinimum
最低支持的数据库版本。
自版本 |
1.0 |
---|
类型
字符串
transactionDepth
当前事务的深度。
自版本 |
1.0 |
---|
类型
整数