Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: CaronteGold en 12 Septiembre 2010, 16:56 PM

Título: Insertar variables en SQLITE3 Python
Publicado por: CaronteGold en 12 Septiembre 2010, 16:56 PM

   Buenas,


  Estoy aprendiendo a crear bases de datos usando Python y tengo un problema, a la hora de meter una variable como dato me da un error y todos los ejemplos que veo, o dan una string directa ... 'loquesea' , o meten una tupla.

  Lo que quiero es meter una variable que contenga el dato insertado por el user, de un raw_input().

el código:

import sqlite3 as dbapi
bbdd = dbapi.connect("bbdd.dat")
c = bbdd.cursor()

c.execute("""create table personas (
             nombre text,
             apellido text,
             fecha text,
             localidad text)""")

quien = raw_input("Nombre: ")
secname = raw_input("Apellidos: ")
cuando = raw_input("Fecha de nacimiento: ")
lugar = raw_input("Localidad: ")

c.execute("""insert into personas
             values (quien, secname, cuando, lugar)""")



Y el error :   values (quien, secname, cuando, lugar)""")
OperationalError: no such column: quien

Dice que ninguna columna : quien, pero se supone que ahí va el dato para la columna  :-\
Título: Re: Insertar variables en SQLITE3 Python
Publicado por: Shell Root en 12 Septiembre 2010, 18:35 PM
Cambia la siguiente linea,
Código (python) [Seleccionar]
c.execute("""insert into personas
            values (quien, secname, cuando, lugar)""")

por,
Código (python) [Seleccionar]
c.execute("INSERT INTO personas VALUES ('" + quien + "', '"  + secname + "', '" + cuando + "', '" + lugar + "')")
Título: Re: Insertar variables en SQLITE3 Python
Publicado por: CaronteGold en 12 Septiembre 2010, 20:10 PM

   Gracias, me funcionó, yo había encontrado algo parecido, en vez de los + ponían & , y no me había funcionado, muchas gracias.
Título: Re: Insertar variables en SQLITE3 Python
Publicado por: Shell Root en 12 Septiembre 2010, 20:15 PM
xD, porque en python la sistaxis para concatenar el caracterer +
Título: Re: Insertar variables en SQLITE3 Python
Publicado por: CaronteGold en 13 Septiembre 2010, 01:32 AM

   Tienes idea de porque al mostrar los resultados me pone una u delante ¿?

(u'Nombre', u'Apellidos', u'Fecha', u'Localidad')


  El código que encontré es este:

c.execute("""select * from personas""")
bbdd.commit()

for tupla in c.fetchall():
    print tupla