在sql请求中添加简单引用

时间:2014-07-09 07:53:33

标签: python sql syntax-error

我目前正在使用python中的一个项目,我本来希望在我的字符串中使用撇号进行SQL查询。例如:"Jimmy's home."

我有这个错误:

1064 You have an error in your SQL syntax

所以,我试图在撇号之前添加\,但是当我查看我的数据库时,\'之前的字符串就在我的字段中。

查询中的字符串:"Jimmy\'s home"
数据库中的字符串:"Jimmy"

我不明白为什么?

3 个答案:

答案 0 :(得分:0)

如前所述和其他地方已多次发布,您必须使用字符串插值来构建SQL字符串。使用参数intead:

REQ = u"INSERT INTO organismes (NAME_organisme`,ID_organisme,adresse,cp,town,lat,lon,tel,fax,‌​email,website) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);"
cursor.execute(REQ, (NAME,ID,LIGNE,CP,TOWN,LAT,LON,TEL,FAX,MAIL,URL))

注意,查询字符串中占位符周围的 no 引号:db adapter根据需要将它们放入。

另外,请不要使用大写字母来表示非常数的东西。

答案 1 :(得分:0)

你需要使用“Jimmy's”来获得你的结果“Jimmy's”而不是SQL中的“Jimmy's”。

答案 2 :(得分:0)

因为' or "是一个特殊的键,当你把它放在你的查询中时,sql会自动找到另一个' or "的位置,这就是为什么我们称之为escape keycode \的原因是{ {1}}使用此方法是显示原始值

中的下一个字符