2016-03-19 8 views
2

Есть ли способ, чтобы Propel автоматически удалял имена столбцов, которые являются зарезервированными словами при добавлении/обновлении строки?Ошибка синтаксиса Propel Получена при использовании зарезервированных ключевых слов в именах таблиц или столбцов

Сейчас у меня есть столбец с именем «порядок», и когда я пытаюсь выполнить обновление с помощью

$row->setOrder(1)->save(); 

я получаю ошибку синтаксиса «PHP Фатальная ошибка: неперехваченным исключение„PDOException“с сообщением«SQLSTATE [42601] : Синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в или рядом с «порядком» \ nLINE 1: УСЛОВИЯ ОБНОВЛЕНИЯ SET order = $ 1 WHERE terms.id = $ 2 \ n^'"

ответ

3

Я нашел ответ на этот вопрос http://propelorm.org/documentation/reference/schema.html#database-element.

Добавление параметра identifierQuoting="true" в мой тег <database> в моей schema.xml исправлена ​​проблема. Я считаю, вы также можете добавить это к тегу <table>, чтобы ограничить его одной таблицей. Я не уверен, почему это не будет настройкой по умолчанию.

+0

Я могу предположить, что это общее правило для каждого языка программирования: не используйте зарезервированные слова в качестве идентификаторов: o) – Abelisto