Escaping von % in MySQL-Abfragen aus Python
Beim Erstellen von MySQL-Abfragen in Python können Sie auf Szenarien stoßen, in denen Sie SQL-Injection oder vermeiden müssen Sonderzeichen wie das Prozentzeichen (%) richtig behandeln; Andernfalls kann es zu Fehlern kommen. Dieser Artikel bietet eine Lösung zum Escapen von %-Zeichen in Python-MySQL-Abfragen.
Um die Ausnahme „nicht unterstütztes Formatzeichen ‚Y‘“ zu beheben, müssen Sie das Prozentzeichen (%) in der Abfragezeichenfolge maskieren. Gemäß der MySQL-Dokumentation wird eine wörtliche Escapezeichenfolge empfohlen, die dadurch erreicht wird, dass jedes % durch ein doppeltes Prozentzeichen (%%) ersetzt wird.
Hier ist ein aktualisierter Codeausschnitt, der diesen Ansatz implementiert:
query = """SELECT DATE_FORMAT(date_time,'%%Y-%%m') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""" cur.execute(query, (param1, param2))
Wenn Sie dieser Empfehlung folgen, interpretiert MySQL %% als wörtliches Prozentzeichen und verhindert so, dass es die Formatierung der Abfrage beeinträchtigt. Dadurch wird die aufgetretene Ausnahme behoben und Ihre Abfrage kann erfolgreich ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWie entkomme ich %-Zeichen in MySQL-Abfragen von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!