MysqlChangeItem

扩展自 ChangeItem

检查数据库模式是否已针对一个 MySQL DDL 查询运行。

2.5

Joomla CMS

方法

__construct

构造函数:根据 $updateQuery 构建检查查询和消息

__construct(\Joomla\Database\DatabaseDriver db,  file,  query) : 
继承

2.5

参数

db

DatabaseDriver数据库连接器对象

file

stringSQL 文件的完整路径名称

query

stringSQL 查询的文本(文件的一行)

响应

混合

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

checkDefault

为列更改/修改创建 DEFAULT 属性的查询子句

checkDefault(mixed||string|int changesArray,  type) : 

3.8.6

参数

changesArray

array<string|int, mixed>COLUMN 名称后的单词数组

type

stringCOLUMN 的类型

响应

string检查查询中 DEFAULT 检查的查询子句

checkNull

为列更改/修改创建 NULL 属性的查询子句

checkNull(mixed||string|int changesArray) : 

3.8.6

参数

changesArray

array<string|int, mixed>COLUMN 名称后的单词数组

响应

string检查查询中 NULL 检查的查询子句

fix

运行更新查询以将更改应用于数据库

fix() : 
继承

2.5

响应

fixInteger

修复整数。修复 MySQL 整数描述的问题。

fixInteger( type1,  type2) : 

在 MySQL 8 中不再显示显示长度。这意味着我们必须匹配例如“int(10) unsigned”和“int unsigned”,或者“int(11)”和“int”等等。这同样适用于其他整数数据类型“tinyint”、“smallint”、“mediumint”和“bigint”。

2.5

参数

type1

string列类型

type2

string列属性

响应

string原始或更改后的列类型。

fixQuote

修复要包含在查询中的字符串。

fixQuote( string) : 

将名称引号字符替换为文字的普通引号。删除尾随分号。注入数据库前缀。

2.5

参数

字符串

string要清理的输入字符串。

响应

string修改后的字符串。

fixUtf8mb4TypeChecks

使列更改/修改的检查查询能够容忍文本列的自动类型更改,例如从 TEXT 到 MEDIUMTEXT,在从 utf8 转换为 utf8mb4 后,并修复 MySQL 8 中没有显示长度的整数列(另请参见上面的“fixInteger”函数)。

fixUtf8mb4TypeChecks( type) : 

3.5

参数

type

string在更新查询中找到的列类型

响应

string检查查询中类型检查的条件

getInstance

返回对 ChangeItem 对象的引用。

getInstance(\Joomla\Database\DatabaseDriver db,  file,  query) : \Joomla\CMS\Schema\ChangeItem
继承 静态

2.5

抛出

RuntimeException如果未找到数据库驱动程序的类

参数

db

DatabaseDriver数据库连接器对象

file

stringSQL 文件的完整路径名称

query

stringSQL 查询的文本(文件的一行)

响应

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