我有一个请求启用NO_BACKSLASH_ESCAPES
服务器SQL模式的最终用户。他实际上只能访问一个数据库。我能够只为他的特定数据库启用此选项吗?如果没有,它是全球性的,会有什么样的影响?由于它禁用反斜杠,我担心这会影响Web服务器上的其他PHP程序。
答案 0 :(得分:3)
MariaDB和MySQL文档都说明了同样的事情:
NO_BACKSLASH_ESCAPES禁用反斜杠字符\作为 转义字符串中的字符,使其等同于普通字符 字符。
所以这肯定会产生不必要的影响作为全球环境。
可以在特定会话上设置变量,使其不是全局变量。 例如。
SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',NO_BACKSLASH_ESCAPES');
另外,如果你曾经全局设置过,重启后设置会恢复,请参阅:setting global sql_mode in mysql