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?