Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Python & MySQLdb

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.12.2004
    Ort
    Wil/SG
    Beiträge
    14

    Python & MySQLdb

    Hallo zusammen

    ich versuche mich gerade ein wenig mit Python und MySQL. Zu diesem Zweck habe ich mir die MySQL Erweiterung für Python runtergeladen und installiert. Das Anzeigen der Datensätze funzt auch schon ganz wunderbar.
    Nur kriege ich es nicht hin, dass ein neuer Datensatz in die Tabelle abgelegt wird.
    Das ist die Funktion, die Mühe macht. Zum Anlegen eines neuen Datensatzes rufe ich sie mit 0 auf, ansonsten mit der id Nummer aus der DB, wenn ich einen Datensatz ändern will.
    PHP-Code:
    def schreiben(nummer):
        print 
    "Titel des Films eingeben"
        
    title raw_input()
        print 
    "Schauspieler angeben"
        
    actors raw_input()
        print 
    "Regisseur angeben"
        
    regie raw_input()
        print 
    "Eine Kurzberschreibung des Films angeben"
        
    content raw_input()

        
    conn MySQLdb.connect(db="movie",host="127.0.0.1",user="root",passwd="supergeheim")
        
    cursor conn.cursor()
        if 
    nummer == 0:
            
    anzahl cursor.execute("""insert into movies(title,actors,regie,content) values('%s','%s','%s','%s')""" % (title,actors,regie,content))
            print 
    anzahl," Datensaetze wurde hinzugefügt"
            
    conn.close() 
    Die Operation verursacht keinen Fehler, aber es existiert einfach kein Eintrag in der DB.
    System:
    WinXP mit MySQL 4.1.12 und Python 2.4.1

    Hoffe jemand weiss hier nen Tipp
    Danke und Gruss

    tobi
    [EDIT]
    Bei allen "Fehlversuchen" die Daten einzutragen wird der Primary Key der Tabelle trotzdem hochgezählt d.h. wenn ich 4 mal versuche einen Datensatz mit der Funktion zu schreiben und danach einen Datensatz mit MySQL-Monitor eingebe, dann ist der Prim Key um 4 höher als der letzte Eintrag
    [/EDIT]
    Geändert von jahlives (13-06-2005 um 12:57 Uhr)
    Was nicht passt wird passend gemacht.

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.12.2004
    Ort
    Wil/SG
    Beiträge
    14

    Lösung gefunden...

    Fall noch jemand Interesse an der Lösung hat (war was ganz dummes):
    PHP-Code:
    conn MySQLdb.connect(db="movie",host="127.0.0.1",user="root",passwd="supergeheim"
        
    cursor conn.cursor() 
        if 
    nummer == 0
            
    anzahl cursor.execute("""insert into movies(title,actors,regie,content) values('%s','%s','%s','%s')""" % (title,actors,regie,content)) 
            print 
    anzahl," Datensaetze wurde hinzugefügt" 
            
    conn.commit()
            
    conn.close() 
    Ohne conn.commit() werden jegliche Updates der DB verworfen.

    Danke und Gruss

    tobi
    Was nicht passt wird passend gemacht.

  3. #3
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Das ist normal, Evtl. unterstützt der Treiber auch autocommit, was aber nicht unbedingt performant ist.

    fs111
    ....::::Mein Blag::::....

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.12.2004
    Ort
    Wil/SG
    Beiträge
    14
    Ich hatte mich bei dem Code Schnippel auch genau an mein Python Buch gehalten. Da stand echt mit keinem Wort, dass man dies machen müsse und darum habe ich auch nicht dran gedacht. Ist aber im Prinzip das gleiche wie ein POP-Server (der löscht die per Flag als gelöscht gesetzten Mails ja auch erst wenn die Verbidung mit Quit geschlossen wird und der Server damit in den Update Status geht)

    Danke und Gruss

    tobi
    Was nicht passt wird passend gemacht.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •