推动不向 MySql 查询中的字段名称添加单引号
Propel not adding single quote to fields name in MySql query
我有以下 mysql table:
CREATE TABLE `content_segments`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`include` TINYINT(1) NOT NULL,
`dimension` VARCHAR(50) NOT NULL,
`media_type` VARCHAR(50) NOT NULL,
`match` VARCHAR(50) NOT NULL,
`content` TEXT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
问题是 match 字段是 MySQL 中的保留字,propel2 没有用单引号将字段名称括起来以转义保留字运行-时间(生成查询时)。
我想知道是否有为什么要强制推进使用单引号转义我所有的 table 字段以避免保留字错误。
我得到的错误是:
Unable to execute SELECT statement [SELECT id, include, dimension, media_type, match, content FROM content_segments WHERE id = :p0]
解决方案在 propel git 存储库的问题讨论中。
We have changed the way how identifier quoting is working. You need to
activate it per database or per table:
<database ... identifierQuoting="true">
or
<table ... identifierQuoting="true">
正如问题评论中所述,相关的推进问题是 https://github.com/propelorm/Propel2/issues/781 for propel2
我有以下 mysql table:
CREATE TABLE `content_segments`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`include` TINYINT(1) NOT NULL,
`dimension` VARCHAR(50) NOT NULL,
`media_type` VARCHAR(50) NOT NULL,
`match` VARCHAR(50) NOT NULL,
`content` TEXT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
问题是 match 字段是 MySQL 中的保留字,propel2 没有用单引号将字段名称括起来以转义保留字运行-时间(生成查询时)。 我想知道是否有为什么要强制推进使用单引号转义我所有的 table 字段以避免保留字错误。 我得到的错误是:
Unable to execute SELECT statement [SELECT id, include, dimension, media_type, match, content FROM content_segments WHERE id = :p0]
解决方案在 propel git 存储库的问题讨论中。
We have changed the way how identifier quoting is working. You need to activate it per database or per table:
<database ... identifierQuoting="true">
or
<table ... identifierQuoting="true">
正如问题评论中所述,相关的推进问题是 https://github.com/propelorm/Propel2/issues/781 for propel2