2024-05-15 03:56:16 发布
网友
我目前在一个python项目中工作,我希望在字符串中使用撇号进行SQL查询。例如:"Jimmy's home."
"Jimmy's home."
我有个错误:
1064 You have an error in your SQL syntax
所以,我试着在撇号前加上\,但是当我查看数据库时,只有\'前的字符串在我的字段中。你知道吗
\
\'
查询中的字符串:"Jimmy\'s home" 数据库中的字符串:"Jimmy"
"Jimmy\'s home"
"Jimmy"
我不明白为什么?你知道吗
在SQL中,您需要使用“Jimmy's”来获得结果“Jimmy's”而不是“Jimmy's”。你知道吗
因为' or "是一个特殊的键,当你把它放到你的查询中,sql会自动找到另一个' or "的位置,这就是为什么我们称之为escape keycode的\的原因,它的用途是显示原始值中的下一个字符
' or "
escape keycode
正如之前多次在这里和其他地方发布的那样,您必须而不是使用字符串插值来构建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适配器根据需要为您放入占位符。你知道吗
另外,请不要用大写字母来表示不是常量的东西。你知道吗
在SQL中,您需要使用“Jimmy's”来获得结果“Jimmy's”而不是“Jimmy's”。你知道吗
因为
' or "
是一个特殊的键,当你把它放到你的查询中,sql会自动找到另一个' or "
的位置,这就是为什么我们称之为escape keycode
的\
的原因,它的用途是显示原始值中的下一个字符正如之前多次在这里和其他地方发布的那样,您必须而不是使用字符串插值来构建SQL字符串。使用参数intead:
注意,no在查询字符串中的占位符周围加引号:db适配器根据需要为您放入占位符。你知道吗
另外,请不要用大写字母来表示不是常量的东西。你知道吗
相关问题 更多 >
编程相关推荐