【发布时间】:2015-02-03 21:06:34
【问题描述】:
我有以下mysql表:
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 没有用单引号将字段名括起来以在运行时转义保留字(生成查询时) )。 我想知道是否有理由用单引号强制转义我的所有表字段以避免保留字错误。 我得到的错误是这样的:
Unable to execute SELECT statement [SELECT id, include, dimension, media_type, match, content FROM content_segments WHERE id = :p0]
【问题讨论】:
-
“用单引号转义我的所有表格字段” - 你的意思是勾号
`不是“引号”'或"。 -
是的,这正是我的意思。
-
不幸的是,我对 Propel 一无所知。一个快速的解决方法是使用另一个词,例如
matches,并尽可能远离保留词。 -
我想过这个,但它是一个遗留表,很难在不破坏现有代码的情况下更改字段名称。
标签: php mysql database orm propel