由于编码引号,MySQL语句失败

时间:2017-10-13 11:26:13

标签: mysql encoding

继续这个问题MySQL database contains quotes encoded and unencoded and it's breaking javascript

我正在执行这个MySQL查询:

DELETE  FROM `example` WHERE `name` = ''12345''

但是它失败了,因为数据库中的值是'12345'。似乎数据库中的旧数据混合了编码和未编码的引号。将数据库中的所有'更新为'是否安全?

1 个答案:

答案 0 :(得分:1)

在大多数情况下(包括您的),存储没有任何"编码"的文本。也就是说,不存储htmlentities,存储实际字符,不存储unicode'代码'存储实际字符等。

同样需要与数据库中的内容进行比较。

但是,在构建SQL语句时,您必须转义字符串。否则,您无法在引号内获取引号(在文本中)(这是SQL语法的一部分。

也就是说,在搜索爱尔兰人时,你最终会得到这个SQL:

... WHERE `name` = 'O\'Brian'