ChangeItem
每个对象表示一个查询,即 DDL SQL 查询中的一行。
此类用于检查站点的数据库以查看是否已运行 DDL 查询。如果未运行,它提供通过重新运行 DDL 查询来修复数据库的功能。这些查询从 administrator/components/com_admin/sql/updates/<database>
文件夹中的更新文件中解析。如果站点使用 com_installer 更新,则会自动运行这些更新。但是,程序文件可能会在不更新数据库的情况下更新(例如,如果用户只是将新文件复制到现有安装的顶部)。
这是一个抽象类。我们需要为每个数据库扩展它并添加一个 buildCheckQuery() 方法,该方法创建查询以检查是否已运行 DDL 查询。
自 |
2.5 |
---|---|
包 |
Joomla CMS |
方法
__construct
构造函数:从 $updateQuery 构建检查查询和消息
__construct(\Joomla\Database\DatabaseDriver db, file, query) :
自 |
2.5 |
---|
参数
- db
DatabaseDriver
数据库连接器对象- file
string
SQL 文件的完整路径名称- query
string
SQL 查询的文本(文件的一行)
响应
混合
buildCheckQuery
检查 DDL 查询以查看它是否为已知类型 如果是,则构建一个检查查询以查看 DDL 是否已在数据库上运行。
buildCheckQuery() :
如果成功,则填充 $msgElements、$queryType、$checkStatus 和 $checkQuery 字段。$msgElements 包含创建用户消息的文本。$checkQuery 包含用于检查架构更改是否已针对当前数据库运行的 SQL 查询。$queryType 包含已运行的 DDL 查询的类型(例如,CREATE_TABLE、ADD_COLUMN、CHANGE_COLUMN_TYPE、ADD_INDEX)。如果创建了查询,则 $checkStatus 字段设置为零
如果失败,则 $checkQuery 为空,并且 $checkStatus 为 -1。例如,如果当前行是非 DDL 语句,则会发生这种情况。
自 |
2.5 |
---|
响应
无效
check
运行检查查询并检查是否返回 1 行
check() :
自 |
2.5 |
---|
响应
int
如果成功则为 1,如果跳过则为 -1,如果检查失败则为 -2
fix
运行更新查询以将更改应用于数据库
fix() :
自 |
2.5 |
---|
响应
无效
getInstance
返回对 ChangeItem 对象的引用。
getInstance(\Joomla\Database\DatabaseDriver db, file, query) : \Joomla\CMS\Schema\ChangeItem
自 |
2.5 |
---|---|
抛出 |
|
参数
- db
DatabaseDriver
数据库连接器对象- file
string
SQL 文件的完整路径名称- query
string
SQL 查询的文本(文件的一行)
响应
ChangeItem
基于数据库驱动的实例
属性
file
更新文件:找到查询的完整路径文件名
自 |
2.5 |
---|
类型
字符串
updateQuery
更新查询:用于更改数据库架构的查询(文件中的某一行)
自 |
2.5 |
---|
类型
字符串
checkQuery
检查查询:用于检查数据库架构的查询
自 |
2.5 |
---|
类型
字符串
checkQueryExpected
检查查询结果:如果数据库是最新的,则检查查询的预期结果
自 |
2.5 |
---|
类型
字符串
db
DatabaseDriver 对象
自 |
2.5 |
---|
类型
DatabaseDriver
queryType
查询类型:用于构建语言键以创建消息,以告知用户检查/更改了什么可能的值:ADD_TABLE、ADD_COLUMN、CHANGE_COLUMN_TYPE、ADD_INDEX
自 |
2.5 |
---|
类型
字符串
msgElements
包含用于 Text::sprintf 语句的值的数组,指示已检查的内容
根据定义的元素,告诉您消息应该是什么,如下所示:对于 ADD_TABLE:表 对于 ADD_COLUMN:表、列 对于 CHANGE_COLUMN_TYPE:表、列、类型 对于 ADD_INDEX:表、索引
自 |
2.5 |
---|
类型
array<string|int, mixed>
checkStatus
已检查状态
自 |
2.5 |
---|
类型
int
rerunStatus
重新运行状态
自 |
2.5 |
---|
类型
int