使用Python和psycopg时的SQL语法错误

0 投票
2 回答
922 浏览
提问于 2025-04-15 16:15

你怎么修复这个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

你在同一个查询中犯了三个不同的错误:

  1. 字段名称不应该加引号。
  2. psycopg2使用元组,而不是列表来传递参数。
  3. 像“:1”这样的定位参数是不被支持的。

把你的查询改成:

cur.execute("""INSERT INTO courses (course_nro) VALUES (%s)""", ('hen',))

1

去掉字段名称周围的引号:

INSERT INTO courses (course_nro)

撰写回答