写代码时遇到了个小坑,使用excute向数据库插入字符串时"."和":"一直报错。
查阅官方文档,我们可以看到官方的 *** 作:
cur.execute("INSERT INTO foo VALUES (%s)", "bar") # WRONG
cur.execute("INSERT INTO foo VALUES (%s)", ("bar")) # WRONG
cur.execute("INSERT INTO foo VALUES (%s)", ("bar",)) # correct
cur.execute("INSERT INTO foo VALUES (%s)", ["bar"]) # correct`
不直接使用python提供的插值语法,而是将元组作为参数传入!并且在最后一个数据后面要添加一个","。才能保证元组正确识别。
Warning Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.
警告 永远不要使用python字符串连接符号“+”或者变量插值符号“%”对SQL查询语句传参。即使有人用q指着你也不要。
官方文档可以在这里查看:https://www.psycopg.org/docs/usage.html#adaptation-of-python-values-to-sql-types
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)