Foro de elhacker.net

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:

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
  1. c.execute("""insert into personas
  2.             values (quien, secname, cuando, lugar)""")
por,
Código
  1. 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ódigo:
c.execute("""select * from personas""")
bbdd.commit()

for tupla in c.fetchall():
    print tupla