(sin asunto)
Gerardo Juarez
gerardo en computo-industrial.com.mx
Jue Jul 12 17:36:25 CEST 2007
Dos cosas: he probado, y las dos formas de sintaxis se pueden usar con
MySQLdb:
INSERT = "insert into tabla (nombre, clave) values (%s, %s))"
# ambas funcionan, por lo menos con SELECT:
cursor.execute(INSERT, (valor1, valor2))
cursor.execute(INSERT % (valor1, valor2))
Lo que me ha pasado es que cuando tienes un argumento, no me ha sido facil
saber si deben llevar '%s' o solamente %s, cuando el campo es de tipo
char, varchar, o similar. Esto solo pasa con INSERT. A esto me referia
en un mensaje anterior con el "problema de insercion de codigo", en el
que se puede modificar la instruccion SQL con comillas (') de mas.
Prueba a ver si son las comillas o que extranamente se requiera SQL %
(args,...) con un INSERT.
saludos
Gerardo
On Wed, 11 Jul 2007, José Boris Bellido Santa María wrote:
> 2007/7/11, joana salgado gomez <joana_mendaro en hotmail.com>:
> >
> > Hola chicos estoy haciendo el siguiente programa:
> >
> > import MySQLdb
> > def guardarCambios(DNIUsuario,nombreUsuario, apellidoUsuario,
> > claveUsuario, pwdUsuario):
> > db = MySQLdb.connect(host='localhost', user='root',
> > passwd='joana', db='recetario')
> > cursor = db.cursor()
> > cursor.execute("""INSERT INTO usuario(dni,nombreUsuario,
> > apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON
> > DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario,
> > claveUsuario, pwdUsuario))
> > db.commit()
> >
> >
> Tu consulta esta mal hecha
> me parece q el error es q te falta % antes de
> (DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario)
> deberia ser:
> cursor.execute("""INSERT INTO usuario(dni,nombreUsuario,
> apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON
> DUPLICATE KEY UPDATE"""%(DNIUsuario,nombreUsuario, apellidoUsuario,
> claveUsuario, pwdUsuario))
>
> Saludos,
>
>
Más información sobre la lista de distribución Python-es