Seite 1 von 1

SQLite fügt einträge nicht hinzu.

Verfasst: Montag 23. Juli 2007, 15:49
von Sr4l
Hallo ich habe ein kleien SQLlite Klasse geschreiben, aber das inserst funktioniert nicht. Das ausführen des folgenden Codes liefert keinen Fehler zurück, die Daten werden aber auch nicht in die Datenbank eingefügt.

Code: Alles auswählen

import sqlite3
import time

class database:
	def __init__(self):
		con = sqlite3.connect('my.db')
		self.c = con.cursor()
	def create(self):
		self.c.execute("CREATE TABLE `files` (\
		id INTEGER PRIMARY KEY,\
		name VARCHAR(100),\
		hash VARCHAR(100),\
		public VARCHAR(3),\
		meta VARCHAR(100),\
		time INT(15),\
		ip VARCHAR(25),\
		data TEXT)")
	
	def insert_file(self, name, hash, public, meta, ip, data):
		self.c.execute("INSERT INTO files (id, name, hash, public, meta, time, ip, data) VALUES (NULL, '%s', '%s','%s', '%s', '%s', '%s', '%s')"""%(
			name, hash, public, meta, time.time(), ip, data))


	def get_file(self, name='%%', meta='%%', hash='%%'):
		self.c.execute("SELECT * FROM files WHERE `name` LIKE '%s' AND `meta` LIKE '%s' AND `hash` LIKE '%s'; "%(name, meta, hash))
		return self.c.fetchall()
		
		
#database().create()
print database(). insert_file("lol","lol","lol","lol","lol","lol")
print database().get_file(name='lol')
Vielleich fällt euch ja was dazu ein warum das nicht geht. Danke.

PS: So etwas wie commit gibt es ja bei SQLite nicht?!

Re: SQLite fügt einträge nicht hinzu.

Verfasst: Montag 23. Juli 2007, 16:17
von gerold
Sr4l hat geschrieben:So etwas wie commit gibt es ja bei SQLite nicht?!
Hallo Sr4l!

Doch. :P Es wird nur bei "CREATE" automatisch ausgeführt. Bei "INSERT" muss man es selber machen.

mfg
Gerold
:-)

Verfasst: Montag 23. Juli 2007, 19:03
von Sr4l
lol danke.

ich habe das commit an die Abfrage gehangen nicht an die Datenbankverbindung.

*edit*:
folgendes habe ich geändert (nur der Vollständigkeit zur Liebe) :

Code: Alles auswählen

    def __init__(self):
        self.con = sqlite3.connect('my.db')
        self.c = self.con.cursor() 

    def insert_file(self, name, hash, public, meta, ip, data):
        self.c.execute("INSERT INTO files (id, name, hash, public, meta, time, ip, data) VALUES (NULL, '%s', '%s','%s', '%s', '%s', '%s', '%s')"""%(
            name, hash, public, meta, time.time(), ip, data)) 
        self.con.commit()
Naja und ich habe self.c in self.cur umbenannt.

Verfasst: Freitag 20. November 2009, 18:51
von Bong-Jour
Danke für diesen Thread

Die §$%&!! Datenbank war kurz davor mich in den Wahnsinn zu treiben... ^^