Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
doctrinebot opened this issue Apr 3, 2012 · 3 comments
Closed

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

doctrinebot opened this issue Apr 3, 2012 · 3 comments

Comments

@doctrinebot
Copy link

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?

@doctrinebot
Copy link
Author

Comment created by @beberlei:

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

@doctrinebot
Copy link
Author

Issue was closed with resolution "Invalid"

@Ocramius
Copy link
Member

Same remarks as in #5874

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants