Foros del Web » Programando para Internet » Python »

Duda con insert y psycopg2

Estas en el tema de Duda con insert y psycopg2 en el foro de Python en Foros del Web. Hola, soy yo nuevamente, con mis dudas de novato en python. Resulta que estoy usando postgresql. Para trabajar con este motor hago uso del modulo ...
  #1 (permalink)  
Antiguo 25/05/2010, 15:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 8 meses
Puntos: 27
Duda con insert y psycopg2

Hola, soy yo nuevamente, con mis dudas de novato en python.

Resulta que estoy usando postgresql. Para trabajar con este motor hago uso del modulo
"psycopg2"

El problema está al hacer un insert.

Yo tengo la siguiente tabla:

CREATE TABLE tabla
(
codigo integer NOT NULL DEFAULT nextval('dato_codigo_seq'::regclass),
informacion character(30) NOT NULL,
CONSTRAINT dato_pkey PRIMARY KEY (codigo)
)


Es decir, el campo codigo es un serial.

Bueno, para realizar un insert seguro con psycopg2 debo realizarlo de la forma
Código PHP:
cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef")) 
Ahora el problema es que esto no funciona, y debo hacerlo de la forma:
Código PHP:
cursor.execute("INSERT INTO tabla (codigo,informacion) VALUES (nextval(%s),%s)",
            (
"dato_codigo_seq","abcdef")) 
donde "dato_codigo_seq" es el nombfre de la secuencia del serial.

Mi pregunta es: ¿conocen alguna manera de realizar la instruccion sin mencionar el campo serial, y que aun así sea una consulta segura?

Por si no me entendieron:
generalmente uno realiza un insert de la forma
Código PHP:
insert into tabla(informacion)values('asdsa'
sin hacer mencion al campo serial, el cual toma los valores que le corresponden solos

P.D.: si lo hiciera de la forma
Código PHP:
cursor.execute("INSERT INTO tabla informacion) VALUES ("+valor+")"
funcionaría, pero sería una consulta propensa a SQLinjection.

Bueno, esa es mi duda, espero puedan ayudarme, talvés en otros motores de bases de datos pasa lo mismo, y hay una manera de resolverlo que aun no descubro.

saludos
  #2 (permalink)  
Antiguo 25/05/2010, 15:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 8 meses
Puntos: 27
Respuesta: Duda con insert y psycopg2

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

Era la coma al final de la tupla. Disculpen por haber posteado una pregunta tan simple, ahora se hace tan evidente, pero hace unas horas no podia imaginar cual era el problema.

saludos

Etiquetas: insert
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:53.