使用Python和psycopg时的SQL语法错误
你怎么修复这个SQL代码?
我的Python代码:
import os, pg, sys, re, psycopg2
conn = psycopg2.connect("dbname=tk user=masi password=123")
cur = conn.cursor()
cur.execute("""INSERT INTO courses ('course_nro')
VALUES ( `:1` )""", ['hen'])
我得到:
Traceback (most recent call last):
File "<stdin>", line 13, in <module>
psycopg2.ProgrammingError: syntax error at or near "'course_nro'"
LINE 1: INSERT INTO courses ('course_nro')
^
2 个回答
2
你在同一个查询中犯了三个不同的错误:
- 字段名称不应该加引号。
- psycopg2使用元组,而不是列表来传递参数。
- 像“:1”这样的定位参数是不被支持的。
把你的查询改成:
cur.execute("""INSERT INTO courses (course_nro)
VALUES (%s)""", ('hen',))
1
去掉字段名称周围的引号:
INSERT INTO courses (course_nro)