¿Por qué no se escribe nada en la base de datos?

Aquí está mi código (actualmente):

conn = sqlite3.connect(db)
conn.text_factory = str  #bugger 8-bit bytestrings
cur = conn.cursor()

reader = csv.reader(open(csvfile, "rU"), delimiter = '\t')
for Number, Name, Message, Datetime, Type in reader:

    # populate subscriber table
    if str(Number)[:1] == '1':
        tmpNumber = str(Number)[1:]
        Number = int(tmpNumber)
    cur.execute('INSERT OR IGNORE INTO subscriber (name, phone_number) VALUES (?,?)', (Name, Number))

cur.close()
conn.close()

Aquí hay algunos datos de muestra del archivo csv (separados por tabuladores en el archivo):

Number       Name        Message         Date/Time               Type
16665551212  Jane Doe    message one     11/23/2011 6:34:44 AM   Incoming
16665551212  Jane Doe    message two     11/23/2011 4:53:21 PM   Incoming

El código se ejecuta sin errores, solo que no se escribe nada en la base de datos. ¿Por qué es esto?

preguntado el 12 de junio de 12 a las 21:06

1 Respuestas

Necesita confirmar sus cambios: conn.commit()

Si no desea utilizar transacciones en absoluto, es decir, trabajar en modo "autocommit", utilice isolation_level=None en la connect() llamar. Sin embargo, esto suele ser una mala idea.

Respondido el 12 de junio de 12 a las 21:06

No pude antes, me hace esperar tantos minutos y para entonces generalmente se me olvida. ¿Quizás el sistema no debería requerir tal espera? Aun así, lo he aceptado ahora. - Dan

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.