LINUX.ORG.RU

Doctrine SQL error

 , ,


0

1

Всем привет. Помогите пожалуйста с проблемой. Создаю нового пользователя на сайте при регистрации, в итоге выдает exception вида:

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 'group, login_role, status, account_type, activation, rating, profile_photo, secu' at line 1
Понимаю что в названии полей есть слова зарезервированные SQL, но увы структуру базы я не в праве поменять, поискав ряд решений - делаю
/**
     * @Column(name="`password`", type="string")
     */
    private $password;

    /**
     * @Column(name="`group`", type="string")
     */
    private $group;

    /**
     * @var string
     */
    private $loginRole;

    /**
     * @Column(name="`status`", type="string")
     */
    private $status;
Даже на поле пароль с горяча экранирование повесил, все ровно та же ошибка и сижу ломаю голову как все таки её исправить. Может в консоли еще прописать какую команду нужно?


Ответ на: комментарий от lochness
INSERT INTO user (
  email, firstname, lastname, username, 
  password, group, login_role, status, 
  account_type, activation, rating, 
  profile_photo, security_question, 
  sec_question_answer, last_country_edit, 
  reg_ip, reg_date, country_id, reg_country_id
) 
VALUES 
  (
    ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
    ?, ?, ?
  )

Ну и внизу параметры, да скорее всего ругается на group, но я в классе Entity User как только не делал

/**
     * @var string
     * @ORM\Column(name="`group`", type="string")
     */
    private $group;
И так и по разному,все ровно оно не экранирует, как по другому экранировать я не нашел способа.

Berdin ()
Последнее исправление: Berdin (всего исправлений: 1)

Currently you have the following workarounds:

  • selectively add `quoted=true` to table and column names (ugh)
  • replace `DefaultQuoteStrategy` with strategy that quotes all identifiers.
anonymous ()

Насколько помню доктрина создает прокси объекты из энтити. Попробуй почистить кэш

kiotoze ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.