Обработка механизмов MySQL Backticks When Switching DB с помощью Интерфейса PDO PHP

  1. Я в настоящее время работаю над приложением PHP, которое использует базу данных MySQL для ее бэкенда
  2. Все мои запросы содержат обратные галочки для выхода из имен полей. Это так, у меня могут быть поля как "пароль" в запросе, не вызывая проблемы (см. пример),
  3. Я знаю, что обратные галочки не универсальны между механизмами реляционной базы данных (SQLite использует двойную кавычку, например),
  4. Все запросы в моем php приложении выполняются с помощью интерфейса PDO PHP

Мой вопрос - это: Если я хочу переключить механизмы базы данных, сказать от MySQL до SQLite, что я должен сделать для обработки обратных галочек во всех моих запросах? Я действительно не хочу должным быть проходить весь свой код, и изменение / удаляют обратные галочки. Какие-либо предложения? Я делаю что-то не так или не в границах лучших практик?

Демонстрационный запрос:

SELECT
   `username`,
   `password`,
   `email_address`
FROM
   `users`
WHERE
   `id` = '1'
5
задан Levi Hackwith 3 March 2010 в 17:02
поделиться

2 ответа

На самом деле, пароль не нужно цитировать ... Это даже не зарезервированное слово: http: / /dev.mysql.com/doc/refman/5.1/en/reserved-words.html

IMHO, лучший подход, который вы можете предпринять:

  1. Не используйте зарезервированные слова в своих идентификаторах.
  2. Удалить кавычки из текущего кода; это двухминутная задача с любым приличным редактором (если вы также не используете оператор обратной кавычки)

Как бы то ни было, переключение на другой движок БД - это одно; создание приложения, независимого от БД, - это совершенно другая проблема.

4
ответ дан 14 December 2019 в 01:06
поделиться

Не используйте зарезервированные слова, и у вас не будет проблем, если вы не используете обратные кавычки. Избавьтесь от всех обратных кавычек, это не стандарт SQL, у всех других баз данных с ними будут проблемы. В стандарте используются двойные кавычки, их поддерживает большинство баз данных. Но опять же, не используйте зарезервированные слова, и они вам не нужны.

Настройте свой MySQL-сервер (-соединение) для использования ANSI-QUOTES , и MySQL также будет обрабатывать двойные кавычки, как и должно было быть изначально: как идентификатор

{{1} }
4
ответ дан 14 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: