Ich versuche, den folgenden Befehl auszuführen, Einstellung "speichern" = "Ergebnis", für die Zeile, wo die Code-Spalte gleich "Code" ist.Python Mysql Update Ausführen Befehl
cursor.execute("""UPDATE pjStores SET %s=%s WHERE code=%s""", (store, result, code))
Ich halte die folgenden Fehler zu erhalten, obwohl:
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1087'=1 WHERE code='Madness16'' at line 1")
Wo die Variablen aus dem Befehl waren:
store=1087
result=1
code=Madness16
Dies ist mein erstes Mal wirklich mysql verwenden, so dass ich bin neu dazu. Ich bin jetzt seit ungefähr 2 Stunden in dieser Leitung und kann nicht herausfinden, was ich falsch mache. Ich habe versucht, den folgenden Befehl in mysql, und es lief richtig:
UPDATE pjStores SET `1087`=1 WHERE code='Madness16'
Mehr Code wie gewünscht:
# Step through stores
cursor.execute("SHOW COLUMNS FROM pjStores")
stores = cursor.fetchall()
cursor.execute("SELECT code FROM pjStores")
codes = cursor.fetchall()
for store in stores[1:]: # Hack to skip first entry
pj.setStore(store[0])
for code in codes:
result = pj.checkCode(code[0])
cursor.execute ("""UPDATE pjStores SET %d=%s WHERE code=%s""", (store[0], result, code[0]))
Es ist wie Sie ein Zitat Problem haben, wenn Sie den Fehler (= "Madness16") betrachten, ist es wirklich das? –
Warum verwenden Sie Ganzzahl für Feldnamen? 1087 sollte kein Feldname sein, sondern eine ID. Das Problem wird wahrscheinlich durch Mischen von Strings und Ints verursacht, aber man kann nicht sicher sein, es sei denn, wir sehen mehr Code. – Doa
@ JeremyD Das Zitat-Problem war nur in diesem Beitrag, der tatsächliche Fehler zeigte zwei einfache Anführungszeichen anstelle eines doppelten Zitats. Ich habe den Beitrag aktualisiert, damit er korrekt formatiert ist. – xur17