MySQL 添加额外的反斜杠?

标签 mysql

@@SESSION.sql_mode;
@@GLOBAL.sql_mode;

两者都是空白,my.cnf 没有显示“NO_BACKSLASH_ESCAPE”标志,这是在我的本地服务器上运行但不在我的主服务器上运行的查询的一部分。

UPDATE `table` 
SET `data` = "[{\"_talent\'s\"etc"

现在我知道我可以使用“[{”“_talents”“等”,但我宁愿不使用,因为对我来说,保持我当前一直有效的逃避安全方法要容易得多。

字符集是我正在更新的表的 UTF-8。最奇怪的是它适用于插入但不适用于更新!

这个真的让我挠痒痒。有什么想法吗?

干杯

编辑:

我发现服务器正在尝试像这样解释查询:

Failed to execute SQL : SQL UPDATE `build` SET `data` = "[{\"_talent\'s" WHERE `build_id` = 1 AND `userId` = 1128; failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE `build` SET `data` = "[{\\"_talent\\'s" WHERE `build_id` = 1 AND `userId`' at line 1

但肯定应该是一样的,为什么SQL引擎会逃避我的逃避!? (如果我遗漏了转义,查询仍然失败)

最佳答案

你可以试试这个-

UPDATE 'table' 
SET 'data' = '[{"_talents"etc'

关于MySQL 添加额外的反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5166789/

相关文章:

mysql - 集成两个 Rails 应用程序数据库

mysql - 从 JPA PESSIMISTIC 锁获取的数据库行的物理锁

MYSQL 按两个子查询进行分组而不重复行

sql - 对平面列表进行排序,按 parent 分组

mysql - 要在 Mac 上运行 MySQL 必须导出 DYLD_LIBRARY_PATH

mysql - 安装过程中phpmyadmin错误1064(42000)

MySQL : Selecting alternative field if given field is empty

php - 如何将 "shift"查询结果再往前一行

mysql - Mysql无法在Xampp上运行

mysql - Zend SQL 联合查询的问题