Jim*_*ies 5 python sql postgresql psycopg2
我有以下代码插入到我的postgresql数据库中插入
conn = psycopg2.connect("my connection setting are in here")
cur = conn.cursor()
cur.execute('INSERT INTO src_event (location_id, catname, title, name) VALUES (%i, \"%s\", \"%s\", \"%s\")' % (1441, "concert", item['title'], item['artists'] ))
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我收到以下错误:
psycopg2.ProgrammingError: column "concert" does not exist
LINE 1: ...(location_id, catname, title, name) VALUES (1441, concert, "...
Run Code Online (Sandbox Code Playgroud)
但"音乐会"不是一个列,它是一个值,所以我不明白为什么我得到这个错误.
编辑 - 我已经尝试过"围绕价值演唱会并尝试没有
如何在没有收到此错误的情况下插入我的数据?
Thi*_*ter 12
你真的,真的不应该使用python字符串格式来构建查询 - 他们很容易注入SQL.而你的实际问题是你使用"引用"而你必须使用'引用("引用表/列名等",引用字符串).
请改用以下代码:
cur.execute('INSERT INTO src_event (location_id, catname, title, name) VALUES (%s, %s, %s, %s)', (1441, 'concert', item['title'], item['artists']))
Run Code Online (Sandbox Code Playgroud)
请注意,%s
无论您实际拥有什么类型,都必须使用它.
另请参阅http://initd.org/psycopg/docs/usage.html#query-parameters.