Ich habe Probleme mit MySQL Connector/Python, um gespeicherte Prozeduren mit Namen aufzurufen, die von Backticks umgeben sind. Ich erhalte die folgenden Syntaxfehler, wenn dies mit der cursor.callproc()
Methode tun:Aufruf von gespeicherten MySQL-Prozeduren mit Backticked-Namen mit Connector/Python
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '`insert_page`_args1=NULL' at line 1
Hier ist mein Aufruf der gespeicherten Prozedur, die den Fehler verursacht:
args = (None, 'foo', 'bar')
cursor.callproc('`sp_insert_page`', args)
ich verschiedene Beispiele gesehen habe die Verwendung des Cursors zeigen, mit erweiterter String-Formatierung, um Strings zu vermeiden, die eine falsche MySQL-Syntax auswerten würden, aber das scheint nicht auf die Methode callproc() anwendbar zu sein; Ungeachtet des Formatierungsansatzes erhalte ich den obigen Syntaxfehler.
Der Aufruf gespeicherter Prozeduren, deren Namen Backticks aus dem MySQL-Befehlszeilenclient enthalten, funktioniert einwandfrei. Daher muss das Problem irgendwo in der Python-Anwendung liegen.
Ich hoffe jemand ist in der Lage, etwas Licht auf das Problem zu werfen.
Sie können [this] (https://stackoverflow.com/a/48662431/8584198) Klasse verwenden. Ich habe eine Antwort darauf erhalten. –