我有一个查询,它从文本框中获取文本并将其输入到数据库中。
如果该值类似于Taylor
但O'Neill
由于撇号给出语法错误而出现错误,则它可以正常工作unclosed quotation mark
有没有办法将O'Neill
撇号添加到数据库中?
我不想用双单引号替换它,我希望它按照它显示的那样放入数据库中。
谢谢
我有一个查询,它从文本框中获取文本并将其输入到数据库中。
如果该值类似于Taylor
但O'Neill
由于撇号给出语法错误而出现错误,则它可以正常工作unclosed quotation mark
有没有办法将O'Neill
撇号添加到数据库中?
我不想用双单引号替换它,我希望它按照它显示的那样放入数据库中。
谢谢
如果您使用双单引号,您的数据库中不会出现双单引号。你最终只会得到一个单引号。
双引号只是一种在 SQL 语句中转义单引号的方法。因此,当您执行以下操作时:
> insert into your_table (name) values ('O''neil');
该值O'neil
实际上将被插入到数据库中。
如果您的数据库是PostgreSQL,还有其他操作字符串的方法。例如使用$$
:
> insert into your_table (name) values ($$O'neil$$);
将插入O'neil
数据库。
您可能想查看Microsoft 模式和实践文档中的步骤 4. 使用 SQL 查询的命令参数。这不仅可以解决您的报价问题,还可以防止 SQL 注入攻击和其他非常糟糕的事情发生。
您可以使用双 '' 提交您的 SQL 查询就好了,数据库识别转义字符并只保存一个。
为什么你不想要双单引号解决方案?