2016-06-24 3 views
0

Was mache ich hier falsch? Es läuft ohne Fehler, es hat eine Tabelle erstellt, aber die Zeilen sind leer. Warum?Python-Code und SQLite3 werden keine Daten in die Tabelle Pycharm einfügen?

Full Image

import sqlite3 

sqlite_file = (r"C:\Users\Dragan\PycharmProjects\MyProject\ArchLib2.db") 
conn = sqlite3.connect(sqlite_file) 
cursor = conn.cursor() 

table_name = 'Archive' 

sql = 'CREATE TABLE IF NOT EXISTS ' + table_name + '("first_name" varchar NOT NULL, "second_name" varchar NOT NULL)' 
cursor.execute(sql) 

sql = 'INSERT INTO ' + table_name + '(first_name,second_name) VALUES ("value1","value2");' 
cursor.execute(sql) 

cursor.close() 
+0

Stellen Sie sicher, rufen 'conn.commit()' nach dem Einfügen von Daten. – bernie

+0

Ich habe ... und nichts Tisch ist noch leer .. 3 Stunden verschwendete dies – PythonMan

Antwort

0

Ok, so fand ich, warum es keine Daten in Tabelle einfügen hat.

  • Daten in sql = Saite gut Formating nur knapp sein Ziel (dies ' muss mit dieser "

  • zweiten Durchlauf ersetzt werden, wenn Sie Zeichenfolge-Wert haben wie "value1" es Backslash auf beiden Seiten zu haben, hat wie diese "\value1\"

  • dritte und wichtigste nach Einfügen der Ausführungszeile müssen Sie diese Zeile hinzufügen conn.commit()

Schluss Code sieht wie folgt aus:

import sqlite3 

sqlite_file = (r"C:\Users\Dragan\PycharmProjects\MyProject\ArchLib2.db") 
conn = sqlite3.connect(sqlite_file) 
cursor = conn.cursor() 

table_name = 'Archive' 

sql = "CREATE TABLE IF NOT EXISTS " + table_name + "(first_name varchar NOT NULL, datetime)" 
cursor.execute(sql) 

sql = "INSERT INTO " + table_name + "(first_name,datetime) VALUES (\"value1\",CURRENT_TIMESTAMP)" 
cursor.execute(sql) 

conn.commit() 
cursor.close() 
Verwandte Themen