我是Python和psycopg2的新手,并且在插入简单方面存在问题。
这是我的表:
CREATE TABLE tabla
(
codigo integer NOT NULL DEFAULT nextval('dato_codigo_seq'::regclass),
informacion character(30) NOT NULL,
CONSTRAINT dato_pkey PRIMARY KEY (codigo)
)
字段codigo
是一个序列号。
当我做这句话时:
cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef"))
PostgreSQL抛出异常。
我必须做
cursor.execute("INSERT INTO tabla (codigo,informacion) VALUES (nextval(%s),%s)",
("dato_codigo_seq","abcdef"))
其中dato_codigo_seq
是字段codigo
的序列。
我的问题是我可以做一个像
这样的句子 insert into tabla(informacion)values('asdsa')
让PostgreSQL处理串行字段的处理?
我可以这样做:
cursor.execute("INSERT INTO tabla informacion) VALUES ("+valor+")")"
但该句可用于SQL注入攻击。
这就是全部。感谢您阅读我的问题,抱歉我的英语不好(我说西班牙语)。
答案 0 :(得分:4)
cursor.execute("""insert into tabla (informacion) VALUES (%s);""",(asdas,))
这是解决方案
答案 1 :(得分:0)
:
cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef",))