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?
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
Most helpful comment
Comment created by @beberlei:
You have to manually escape characters with @Column(name="
integer")