我不确定这里到底发生了什么,但它可能与 python 中的格式有关。 运行此命令会导致错误。
x = '00000201000012EB'
sql = """ SELECT * FROM table WHERE id = {} """.format(x)
conn.execute(sql)
我收到一条错误消息:“EB”附近有语法错误
但是当我运行这样的命令时:
sql = """ SELECT * FROM table WHERE id = '00000201000012EB' """
conn.execute(sql)
效果很好。
我格式化这个sql语句的方式有问题吗?
最佳答案
使用变量作为execute()
的参数:
cur.execute(""" SELECT * FROM my_table WHERE id = %s """, (x,))
如果您决定使用 format()
,则应在占位符周围添加单引号:
sql = """ SELECT * FROM my_table WHERE id = '{}' """.format(x)
关于python - 使用 .format() 时出现 psycopg2 编程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447041/