Orm: DDC-1759: Unable to query on column with name 'integer'

Created on 3 Apr 2012  路  3Comments  路  Source: doctrine/orm

Jira issue originally created by user leedavis81:

Currently implementing a poors mans EAV store with Doctrine. I created an entity that has a few data specific columns, and I called them accordingly...

/****
 * @var string $text
 * @Column(name="text", type="text", nullable=true) 
 */
private $text;

/****
 * @var string $string
 * @Column(name="string", type="string", nullable=true) 
 */
private $string;    

/****
 * @var boolean $boolean
 * @Column(name="boolean", type="boolean", nullable=true) 
 */
private $boolean;

/****
 * @var integer $integer
 * @Column(name="integer", type="integer", nullable=true) 
 */    
private $integer;

Quite nicely this was successfully created as a table. However as integer is a reserved keyword with mysql any attempt to insert would fail.

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'integer, status, created, updated, category_id, merchant_id, image_id) VALUES (1' at line 1

Further to this any attempts at changing this column name using the migration tool would also fail.

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'integer integer_ INT DEFAULT NULL' at line 1

I can see where I've gone wrong, and realise in hindsight that naming these columns as I've done is asking for trouble, so i'll happily change them. However I thought it might be a good idea that Doctrine handle these a little nicer, perhaps scanning for reserved keywords in the CLI orm:validate-schema tool?

Bug Can't Fix Invalid

Most helpful comment

Comment created by @beberlei:

You have to manually escape characters with @Column(name="integer")

All 3 comments

Comment created by @beberlei:

You have to manually escape characters with @Column(name="integer")

Issue was closed with resolution "Invalid"

Same remarks as in #5874

Was this page helpful?
0 / 5 - 0 ratings

Related issues

doctrinebot picture doctrinebot  路  4Comments

dmaicher picture dmaicher  路  3Comments

delboy1978uk picture delboy1978uk  路  3Comments

strayobject picture strayobject  路  4Comments

doctrinebot picture doctrinebot  路  3Comments