insert和psycopg2的问题

时间:2010-05-25 21:29:46

标签: python psycopg2

我是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注入攻击。

这就是全部。感谢您阅读我的问题,抱歉我的英语不好(我说西班牙语)。

2 个答案:

答案 0 :(得分:4)

cursor.execute("""insert into tabla (informacion) VALUES (%s);""",(asdas,))

这是解决方案

答案 1 :(得分:0)

在你的例子中

cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef",))