Wie kann ich die Eingabe in eine MySQL-Datenbank in Python3 umgehen? Ich benutze PyMySQL und funktioniert gut, aber wenn ich versuche, etwas wie:
%Vor% Es funktioniert nicht, wenn die Zeichenfolge '
oder "
hat. Ich habe es auch versucht:
Das Problem dabei ist, dass die Bibliothek (PyMySQL) die Formatierungssyntax für Python2.x, %
, verwendet, die nicht mehr funktioniert.
Ich fand auch diese mögliche Lösung
in hier , aber ich weiß nicht, wo ich diesen Code hinzufügen soll. Das ist alles was ich habe:
%Vor%Bearbeiten: Ich habe es gelöst! In PyMySQL ist der richtige Weg so:
%Vor% Wo die text = conn.escape(request[1])
-Zeile ist, was dem Code entgeht. Habe es im PyMySQL-Code gefunden. Dort ist request[1]
die Eingabe.
Gelöst. In PyMySQL ist der richtige Weg so:
%Vor% Wo die text = conn.escape(request[1])
-Zeile ist, was dem Code entgeht. Habe es im PyMySQL-Code gefunden. Dort ist request[1]
die Eingabe.
Obwohl die "gelöste" Antwort funktioniert, ist es nicht die beste Vorgehensweise. Wenn Sie eine Bibliothek verwenden, die dem Python-DBI entspricht, sollten Sie Bind-Variablen verwenden, anstatt eine Zeichenfolge zu formatieren und sie zur Ausführung zu übergeben. Diese Methodik birgt Gefahren in sich.
Deshalb ist dies der richtige Weg:
%Vor%Beachten Sie, dass dies keine Formatzeichenfolge ist, sondern eine Bindevariable, die an den ausgeführten Cursor übergeben wird.
Für Details: Python DBI PEP
Tags und Links sql mysql python-3.x pymysql