如何在MySql中跳过撇号(')?
MySQL文档说它应该是\'
。 然而,scite和mysql都显示''
有效”。 我看到了,它的工作。 我该怎么办?
你引用的MySQL文档实际上比你提到的要多一点。 它还说,
用“
'
”引用的string中的“'
”可以写成“''
”。
(另外,你链接到表8.1。 特殊字符转义序列的MySQL 5.0版本,当前版本是5.6 – 但是当前表8.1。 特殊字符转义序列看起来非常相似。
我认为backslash_quote (string)
参数的Postgres注释是提供信息的:
这控制着一个引号是否可以用string中的
\'
来表示。 表示引号的首选SQL标准方式是将其加倍(''
),但PostgreSQL历史上也接受了\'
。 但是,使用\'
创造安全风险…”
这对我说,使用双引号字符是一个更好的总体和长期的select,而不是使用反斜杠来避免单引号。
现在,如果您还想添加语言select,SQL数据库select及其非标准怪癖,并select查询框架,那么您可能会select不同的select。 你不能提供关于你的限制的很多信息。
标准SQL使用加倍的引号; MySQL必须接受合理的合规性。
'He said, "Don''t!"'
我相信user2087510意思是:
name = 'something' name = name.replace("'", "\\'")
我也用这个成功了。
只是写''
代替'
我的意思是两次'
这是一个例子:
SELECT * FROM pubs WHERE name LIKE "%John's%"
只需使用双引号括起单引号。
如果你坚持用单引号(以及需要转义字符):
SELECT * FROM pubs WHERE name LIKE '%John\'s%'
有三种方式我知道。 第一个不是最漂亮的,第二个是大多数编程语言的常用方法:
- 用另一个单引号:
'I mustn''t sin!'
- 在单引号之前使用转义字符:
'I mustn\'t sin!'
- 使用双引号括住string而不是单引号:
"I mustn't sin!"
replacestring
value = value.replace(/'/g, "\\'");
值是你的string将存储在您的数据库。
进一步,
对于这个NPM包,你可以看看它
我想如果你有撇号的任何数据点,你可以在撇号前加一个撇号
例如。 “这是约翰的地方”
这里MYSQL假设两个句子“这是约翰的地方”
你可以把“这是约翰的地方”。 我认为它应该这样工作。
这一个工作:
name = 'John O'Brien' name = name.replace("\'", "\\\'")