deets hat geschrieben:Das ist schade, aber was noch weniger hinhaut ist dir zu helfen, wenn du nicht preisgibst *was* genau nicht hinhaut.
Und den SQL-Injection-Fehler hast du immer noch drin.
Ich habe jetzt bei jeder Zeile ein try und except hinzugefügt. Und habe festgestellt, dass schon diese zeile nicht mehr hinhaut.
Code: Alles auswählen
cursor3.execute("SELECT * FROM webs_forum_topics WHERE topicID = ?", (topicID))
/me hat geschrieben:
Was soll dieser Code eigentlich bewirken?
Ich habe den Verdacht, dass du eigentlich einfach replys (was besser korrekt
replies hieße) um 1 erhöhen möchtest. Dafür müsstest du allerdings nicht einmal ein SELECT durchführen.
Ja, das möchte ich. Aber dazu möchte ich auch, wie oben genannt, noch 2 weitere Einträge ändern.
Habe jetzt diese Zeile mal ausprobiert. (ebenfalls mit try und except) Funktionoert leider auch nicht.
Code: Alles auswählen
cursor3.execute('update webs_forum_topics set replys=replys+? where topicID=?', (1, 'topicID'))
sparrow hat geschrieben:Vermeide "SELECT *" Abfragen aus Datenbanken.
Je nach Datenbank ist nämlich nicht definiert in welcher Reihenfolge die Felder in dem Tupel der Abfrage geordnet sind.
Ein Zugriff mit result[int] ist ab allem mit mehr als einem Feld Abfrage böse Magie und absolut nicht wartbar.
Ansonsten hat /me recht: Das Select-Statement ist überflüssig.
Ich habe das bisher immer so gemacht. Und bei der Datenbank, die ich verwende gab es auch noch nie Probleme damit =)
EDIT:
Ich bin eben auf `except Exception, e:` gestoßen und habe das gleich mal ausprobiert.
Die Fehlermeldung die ich bekommen lautet:
"not all arguments converted during string formatting"
Allerdings kann ich damit irgendwie nicht so recht was anfangen