Re: [Pgsql-ayuda] Python - Postgresql

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Francisco Navarro <tonatiuh_az(at)yahoo(dot)com>
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Python - Postgresql
Date: 2003-07-06 22:02:56
Message-ID: 20030706220256.GB28540@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sun, Jul 06, 2003 at 04:20:48PM -0500, Francisco Navarro wrote:
> Hola!, espero me puedan ayudar con este mensaje de
> error
>
> Traceback (most recent call last):
> File "/home/fnavarro/altas2.py", line 27, in ?
> resultado = conecta.query(inserta)
> _pg.error: ERROR: parser: parse error at or near "3"
>
> lo envia en la ejecucion de la linea inserta =
> 'insert into actaservicio
> values('+factura+',\''+clase+',\''+nombre+',\''+telefono+',\''+matricula+',\''+sindefecto+',\''+calidadtrab+',\''+precio+',\''+plazo+',\''+otrosel+',\''+opinion+',\''+rellamada+',\''+retrabajo+',\''+folio+'\')'

En esa ensalada de comillas es dificil no equivocarse. Fijate que el
string tiene que tener una comilla escapada antes y despues de cada
literal... te recomiendo que uses comillas dobles para el string y
dejes las simples para los literales. Ejemplo,

valoruno = "el valor de uno";
valordos = "el valor de dos";
var = "insert into foo (uno, dos) values ('"+valoruno+"', '"+valordos+"');"
print var;

Mucho mas legible, aunque sigue siendo feo. Lo ideal sería usar una
especie de consulta preparada con "placeholders", y que el controlador
automáticamente pusiera comillas donde corresponda... algo como

pgquery = pgconn.prepare("insert into foo (uno, dos) values (?, ?)")
pgquery.exec("valor de uno", "valor de dos");

Pero no sé si se puede hacer en Python.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La gente vulgar solo piensa en pasar el tiempo;
el que tiene talento, en aprovecharlo"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego Alvarez 2003-07-06 22:26:33 [Pgsql-ayuda] Postgresql en windows - NO MYSQL
Previous Message Francisco Navarro 2003-07-06 21:20:48 [Pgsql-ayuda] Python - Postgresql