Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2555

Syntax Error when column is "separator"

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Invalid
    • Affects Version/s: 2.3.4
    • Fix Version/s: None
    • Component/s: ORM
    • Security Level: All
    • Labels:
    • Environment:
      Symfony 2.3.1

      Description

      I had to made a column called "separator", 'Create Table' works, but when 'insert into':

      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 'separator) VALUES ('Test', 'Test', 'a:1:

      {i:0;s:4:\"test\";}

      ', 'a:5:{s:10:\"http-' at line 1

      After some searches ... Separator used by MySQL, so i changed the name:

      php app/console d:s:u --force
      Updating database schema...

      [Doctrine\DBAL\DBALException]
      An exception occurred while executing 'ALTER TABLE seo CHANGE separator link_separator VARCHAR(255) DEFAULT NULL':

      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 'separator link_separator VARCHAR(255) DEFAULT NULL' at line 1

      [PDOException]
      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 'separator link_separator VARCHAR(255) DEFAULT NULL' at line 1

      Same Error... I will manualy update but for me it's a bug ...

        Activity

        Hide
        Marco Pivetta added a comment -

        Reserved SQL keywords need manual escaping by either using a custom quoting strategy or by marking the table name with backticks in mappings, such as:

        "`separator`"

        The ORM is not responsible for escaping identifiers out of the box.

        Show
        Marco Pivetta added a comment - Reserved SQL keywords need manual escaping by either using a custom quoting strategy or by marking the table name with backticks in mappings, such as: "`separator`" The ORM is not responsible for escaping identifiers out of the box.
        Hide
        Tayniak Boris added a comment - - edited

        I have never writen any SQL Request for this error
        Only Doctrine, I re-use the request with ` but Doctrine create the table, the insert and alter the table

        Create table: no error
        Insert into: error
        Alter table: error

        use Doctrine\ORM\Mapping as ORM;
        [...]
        /**

        • @ORM\Column(name="separator", type="string", nullable=true)
          */
        Show
        Tayniak Boris added a comment - - edited I have never writen any SQL Request for this error Only Doctrine, I re-use the request with ` but Doctrine create the table, the insert and alter the table Create table: no error Insert into: error Alter table: error use Doctrine\ORM\Mapping as ORM; [...] /** @ORM\Column(name="separator", type="string", nullable=true) */
        Hide
        Marco Pivetta added a comment -

        Tayniak Boris that's actually a problem in the DBAL layer. it should have failed during DDL execution

        Show
        Marco Pivetta added a comment - Tayniak Boris that's actually a problem in the DBAL layer. it should have failed during DDL execution

          People

          • Assignee:
            Marco Pivetta
            Reporter:
            Tayniak Boris
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: