【发布时间】:2010-12-27 02:14:52
【问题描述】:
插入带有撇号的值的正确 SQL 语法是什么?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
我一直收到错误消息,因为我认为 O 之后的撇号是该值的结束标记。
【问题讨论】:
-
请确认您不会让自己受到 SQL 注入攻击。尽可能使用参数。
-
您使用什么脚本语言?例如,PHP 中有一些函数可以为您正确执行此操作。
-
在这里同意 Andrew:我希望这个问题只是关于通过 SQL 客户端或“查询浏览器”等运行 SQL,而不是实际在生产代码中的某个地方。不使用参数化语句是愚蠢的。
-
它实际上是在代码中。如果我有一个参数化查询,我不需要做同样的事情吗?
-
否定。根据您使用的数据库和驱动程序,参数的隔离可能会以不同的方式处理,但参数化语句中的参数不需要转义。见en.wikipedia.org/wiki/SQL_injection#Preventing_SQL_injection
标签: sql sql-update sql-insert