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 :-\
Cambia la siguiente linea,
c.execute("""insert into personas
values (quien, secname, cuando, lugar)""")
por,
c.execute("INSERT INTO personas VALUES ('" + quien + "', '" + secname + "', '" + cuando + "', '" + lugar + "')")
Gracias, me funcionó, yo había encontrado algo parecido, en vez de los + ponían & , y no me había funcionado, muchas gracias.
xD, porque en python la sistaxis para concatenar el caracterer +
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