SqlsrvDriver

扩展 DatabaseDriver

SQL 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

抛出

RuntimeException

参数

dbName

string将被更改的数据库名称

返回值

布尔值|资源

checkFieldExists

用于检查表中是否存在字段的方法。

checkFieldExists( table,  field) : 
自版本

1.0

参数

table

string要验证字段的表。

field

string要验证的字段。

返回值

bool如果字段存在于表中,则为 true。

connect

根据需要连接到数据库。

connect() : 
自版本

1.0

抛出

RuntimeException

返回值

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

connected

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

connected() : 
自版本

1.0

返回值

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。

返回值

布尔值|资源

createQuery

创建一个新的 DatabaseQuery 对象。

createQuery() : \Joomla\Database\QueryInterface
继承
自版本

2.2

返回值

QueryInterface

decodeBinary

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

decodeBinary(string|resource data) : 
继承
自版本

1.7.0

参数

data

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

返回值

string原始字符串。

disconnect

断开数据库连接。

disconnect() : 
自版本

1.0

返回值

void

dispatchEvent

分派事件。

dispatchEvent(\Joomla\Event\EventInterface event) : 
继承
自版本

2.0.0

参数

event

EventInterface要分派的事件

返回值

void

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

抛出

RuntimeException

返回值

布尔值

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

抛出

RuntimeException

返回值

string|bool数据库连接中使用的排序规则(字符串)或布尔值 false(如果不受支持)。

getConnectionEncryption

用于获取正在使用的数据库加密详细信息(密码和协议)的方法。

getConnectionEncryption() : 
自版本

2.0.0

抛出

RuntimeException

返回值

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
继承
自版本

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
继承 静态 已弃用

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

  • "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

返回值

字符串

getMonitor

获取查询监视器。

getMonitor() : \Joomla\Database\QueryMonitorInterface|null
继承
自版本

2.0.0

返回值

QueryMonitorInterface|null查询监视器或 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()。

返回值

DatabaseQuery

getServerType

获取服务器系列类型。

getServerType() : 
继承

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

自版本

1.4.0

返回值

字符串

getTableColumns

检索给定表的字段信息。

getTableColumns( table,  typeOnly = true) : mixed||string|int
自版本

1.0

抛出

RuntimeException

参数

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

抛出

RuntimeException

参数

tables

mixed表名或表名列表。

返回值

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

getTableKeys

获取表的键详细信息列表。

getTableKeys( table) : mixed||string|int
自版本

1.0

抛出

RuntimeException

参数

table

string表名。

返回值

array<string|int, mixed>表的列规范数组。

getTableList

获取数据库中所有表的数组的方法。

getTableList() : mixed||string|int
自版本

1.0

抛出

RuntimeException

返回值

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

抛出

RuntimeException

参数

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() : 
static
自版本

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>结果数组。

lockTable

锁定数据库中的表。

lockTable( tableName) : 
自版本

1.0

抛出

RuntimeException

参数

tableName

string要锁定的表名。

返回值

$this

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( text,  escape = true) : 
自版本

1.6.0

参数

text

mixed要引用的字符串或字符串数组。

escape

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

抛出

RuntimeException

参数

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) : 
自版本

1.0

抛出

ConnectionFailureException

参数

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

setQuery

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

setQuery(string|\Joomla\Database\QueryInterface query,  offset,  limit) : 
继承
自版本

1.0

抛出

InvalidArgumentException

参数

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

抛出

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

unlockTables

解锁数据库中的表。

unlockTables() : 
自版本

1.0

抛出

RuntimeException

返回值

$this

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。

属性

dispatcher

事件调度程序

继承
自版本

1.2.0

类型

DispatcherInterface|null

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

类型

混合类型

statement

准备好的语句。

继承
自版本

2.0.0

类型

StatementInterface

tablePrefix

公共数据库表前缀。

继承
自版本

1.0

类型

字符串

utf

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

继承
自版本

1.0

类型

布尔值

errorNum

数据库错误号。

继承
自版本

1.0

类型

整数

errorMsg

数据库错误消息。

继承
自版本

1.0

类型

字符串

instances

DatabaseDriver 实例容器。

继承 静态 已弃用
自版本

1.0

已弃用

3.0 将不再支持单例存储。

类型

array<string|int, DatabaseDriver>

dbMinimum

最低支持的数据库版本。

static
自版本

1.0

类型

字符串

transactionDepth

当前事务的深度。

继承
自版本

1.0

类型

整数

factory

DatabaseFactory 对象

继承
自版本

2.0.0

类型

DatabaseFactory

monitor

查询监视器对象

继承
自版本

2.0.0

类型

QueryMonitorInterface