Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine Python MySQL INSERT-Anweisung fehl und wie kann ich das Problem beheben?

Warum schlägt meine Python MySQL INSERT-Anweisung fehl und wie kann ich das Problem beheben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 14:57:12601Durchsuche

Why Does My Python MySQL INSERT Statement Fail, and How Can I Fix It?

Daten in eine MySQL-Datenbank einfügen

Problemstellung

Beim Versuch, die Werte 188 und 90 mithilfe eines Python-Skripts in eine MySQL-Datenbank einzufügen, Der Code kann nicht erfolgreich ausgeführt werden. Der folgende Codeausschnitt veranschaulicht den erfolglosen Versuch:

import MySQLdb
conn = MySQLdb.connect(host= "localhost",
                  user="root",
                  passwd="newpassword",
                  db="engy1")
x = conn.cursor()
x.execute("SELECT *  FROM anooog1")
x.execute (" INSERT INTO anooog1 VALUES ('%s','%s') ", (188,90))
row = x.fetchall()

Lösung

Das Problem entsteht aufgrund eines Fehlers in der SQL-Abfrage, die zum Einfügen verwendet wird. Die korrekte Syntax zum Einfügen von Daten in eine MySQL-Tabelle lautet wie folgt:

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)

Im bereitgestellten Code sind die einfachen Anführungszeichen ('') um die Werte falsch. Wenn Sie sie entfernen, kann die Abfrage erfolgreich ausgeführt werden.

Zusätzlich wurde der Ausnahmebehandlungsmechanismus hinzugefügt, um zu verhindern, dass unerwartete Fehler an der Datenbank vorgenommene Änderungen rückgängig machen. Der geänderte Code unten demonstriert die korrekte Implementierung:

import MySQLdb
conn = MySQLdb.connect(host= "localhost",
                  user="root",
                  passwd="newpassword",
                  db="engy1")
x = conn.cursor()

try:
   x.execute("""INSERT INTO anooog1 VALUES (%s,%s)""",(188,90))
   conn.commit()
except:
   conn.rollback()

conn.close()

Dieser überarbeitete Code sollte die Werte 188 und 90 erfolgreich in die angegebene MySQL-Tabelle einfügen.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine Python MySQL INSERT-Anweisung fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn