4 Stimmen

Kann eine INSERT-Anweisung in einem Python-Skript über MySQLdb nicht ausführen

Ich versuche, eine einfache INSERT Anweisung auf eine MySQL-Tabelle aus einem Python-Skript mit MySQLdb. Meine Tabelle sieht wie folgt aus:

CREATE TABLE `testtable` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `testfield` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
)

Die Ausführung dieser Abfrage über die MySQL-Befehlszeile funktioniert problemlos:

INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue');

Wenn ich jedoch versuche, die Abfrage über ein Python-Skript auszuführen, werden keine Zeilen eingefügt. Hier ist mein Code:

conn = MySQLdb.connect(host=db_host, port=db_port, user=db_user, passwd=db_password, db=db_database)
cursor = conn.cursor ()
cursor.execute ("INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue')")
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close()
conn.close()

Merkwürdigerweise wird dabei "Anzahl der eingefügten Zeilen: 1." Ich kann auch bestätigen, dass diese Abfrage das ID-Feld inkrementiert, denn wenn ich eine weitere Zeile über die Befehlszeile hinzufüge, ist der Wert ihrer ID derselbe, wie wenn das Python-Skript seine Zeilen erfolgreich eingefügt hätte. Wenn ich jedoch eine SELECT Abfrage gibt keine der Zeilen aus dem Skript zurück.

Haben Sie eine Idee, was da schief läuft?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X