我有一个最终用户正在请求启用NO_BACKSLASH_ESCAPES服务器SQL模式。他实际上只能访问一个数据库。我是否只能对他的特定数据库启用此选项?如果不是,那是全球性的,将会产生什么样的影响?因为它禁用了反斜杠,所以我担心这会影响Web服务器上的其他PHP程序。

最佳答案

反响

MariaDB和MySQL文档都声明相同的内容:


  NO_BACKSLASH_ESCAPES禁止将反斜杠字符\用作
  转义字符串中的字符,使其等同于普通字符
  字符。


因此,这肯定会在全球范围内产生不良影响。

全球VS会议

可以在特定会话上设置该变量,以便它不是全局的。
例如。

SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',NO_BACKSLASH_ESCAPES');

另外,如果您确实进行了全局设置,则设置将在重启后恢复,请参见:setting global sql_mode in mysql

参考

https://mariadb.com/kb/en/mariadb/sql-mode/

关于mysql - 在MariaDB中启用NO_BACKSLASH_ESCAPES有什么影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45419007/

10-16 08:26