我的问题是:如果我想切换数据库引擎,比如从MySQL到SQLite,我需要做些什么才能处理所有查询中的反引号?我真的不想要通过我的所有代码并更改/删除反引号。有什么建议?我是否在最佳实践的范围内做错了什么?
示例查询:
SELECT
`username`,
`password`,
`email_address`
FROM
`users`
WHERE
`id` = '1'
答案 0 :(得分:4)
不要使用保留字,并且在不使用反引号时不会遇到麻烦。摆脱所有反引号,它不是SQL标准,所有其他数据库都会遇到问题。标准中使用双引号,大多数数据库都支持它们。但同样,不要使用复习的单词而你也不需要它们。
配置MySQL服务器(-connection)以使用ANSI-QUOTES,MySQL也会处理双引号,因为它应该首先处理:作为标识符
答案 1 :(得分:4)
实际上,password
并不需要引用......它甚至不是保留字:http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
恕我直言,您可以采取的最佳方法是:
无论如何,切换到另一个数据库引擎是一回事;构建一个独立于数据库的应用程序是一个完全不同的问题。
答案 2 :(得分:1)
实际上,SQLite与MySQL反引号引用风格兼容。
但是,只有遵循@Frank建议才会出现反转。