Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Переехал на новый сервер. MySQL версия 5.1.37. После теста сайта оказалось, что запросы, которые прекрасно выполнялись ранее теперь необходимо переписать, заключив все названия полей таблиц в кавычки (`).
Понимаю, что с точки зрения "хорошего тона" программирования так и нужно сделать, но в данный момент требуется настроить по возможности конфигурационные данные для избавления от такой необходимости и чтобы старые запросы работали.
Скажите пожалуйста, как можно настроить сервер, чтобы имена полей в MySQL-таблицах не требовалось заключать в кавычки (`)?
В какую сторону хотя бы смотреть?
Спасибо
Неактивен
nikitos написал:
Переехал на новый сервер. MySQL версия 5.1.37. После теста сайта оказалось, что запросы, которые прекрасно выполнялись ранее теперь необходимо переписать, заключив все названия полей таблиц в кавычки (`).
Именно необходимо заключать в бектики (`) только те идентификаторы, которые являются ключевыми словами.
Конфигурационными настройками вы эту проблему решить не сможете.
Если не хотите заключать в бектики, то просто переименуйте те поля, которые являются ключевыми словами в 5.1.37
P.S. Последнее в любом случае стоит сделать, так как использование ключевых слов в качестве названий плохая практика. И хотя синтаксис такое позволяет, но рано или поздно сами запутаетесь
Неактивен
Перестало работать, потому что в версии 5.1 появились новые зарезервированные слова (которые таковыми в предыдущих версиях не были).
Согласно официальной документации MySQL, по сравнению с 5.0 это:
ACCESSIBLE
LINEAR
MASTER_SSL_VERIFY_SERVER_CERT
RANGE
READ_ONLY
READ_WRITE
(подробнее см. http://dev.mysql.com/doc/mysqld-version … s-5-1.html)
Наверняка в ваших запросах встречаются какие-нибудь из этих слов.
Неактивен
Оказывается, все было немного проще.
Мускул позволяет писать имена полей без кавычек (`), но, например, поле с именем _filename необходимо обрамлять кавычками, причем не спасает даже нижнее подчеркивание (пробел) перед именем.
Пришлось все эти поля закавычить. Работает.
Неактивен
Потому как _filename, начиная с версии 5.1 - тоже зарезервированное слово:
написал:
The words in the following table are explicitly reserved in MySQL 5.1. In addition, _FILENAME is reserved
(правда, непонятно, зачем они об этом слове пишут отдельно, когда можно было его просто включить в список новых для версии 5.1 зарезервированных слов)
Неактивен
Страниц: 1