Ich versuche, eine grundlegende INSERT
-Anweisung auf einer MySQL-Tabelle aus einem Python-Skript mit MySQLdb auszuführen. Meine Tabelle sieht so aus:
CREATE TABLE `testtable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`testfield` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
Das Ausführen dieser Abfrage von der MySQL-Befehlszeile funktioniert einwandfrei:
INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue');
Aber wenn ich versuche, die Abfrage aus einem 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 "Anzahl der eingefügten Zeilen: %d" % cursor.rowcount
cursor.close()
conn.close()
Seltsamerweise wird dies "Anzahl der eingefügten Zeilen: 1" ausgeben. Ich kann auch bestätigen, dass diese Abfrage das ID-Feld inkrementiert, denn wenn ich eine andere Zeile über die Befehlszeile hinzufüge, ist der Wert ihrer ID gleich, als ob das Python-Skript erfolgreich seine Zeilen eingefügt hätte. Wenn ich jedoch eine SELECT
-Abfrage ausführe, werden keine Zeilen aus dem Skript zurückgegeben.
Irgendeine Idee, was schief läuft?