继续这个问题MySQL database contains quotes encoded and unencoded and it's breaking javascript
我正在执行这个MySQL查询:
DELETE FROM `example` WHERE `name` = ''12345''
但是它失败了,因为数据库中的值是'12345'
。似乎数据库中的旧数据混合了编码和未编码的引号。将数据库中的所有'
更新为'
是否安全?
答案 0 :(得分:1)
在大多数情况下(包括您的),存储没有任何"编码"的文本。也就是说,不存储htmlentities,存储实际字符,不存储unicode'代码'存储实际字符等。
同样需要与数据库中的内容进行比较。
但是,在构建SQL语句时,您必须转义字符串。否则,您无法在引号内获取引号(在文本中)(这是SQL语法的一部分。
也就是说,在搜索爱尔兰人时,你最终会得到这个SQL:
... WHERE `name` = 'O\'Brian'