Ich versuche, eine Abfrage zu führen, um 3 Tabellen in einer Datenbank zu suchen, die MySQL durch Python verwendet. Jedes Mal, wenn ich die folgende Zeichenfolge als Abfrage ausprobiere und ausfühle, gibt es einen Fehler bei der Verkettung in der Zeichenfolge.Python: ValueError: nicht unterstütztes Format Zeichen '' '(0x27) bei Index 1
"SELECT fileid FROM files WHERE description LIKE '%" + search + "%' OR filename LIKE '%" + search + "%' OR uploader LIKE '%" + search + "%' ORDER BY fileid DESC"
Dies ist der Fehler, den es gibt mir:
ValueError: unsupported format character ''' (0x27) at index 1
Wenn ich den Charakter es dann fragt entferne ich muss auch die% entfernen, die die Abfrage richtig funktioniert von tatsächlich anhält. Was kann ich tun, um dies zu beheben, da ich Python ziemlich neu bin?
Danke, Kris
Verwenden Sie die integrierten Zeichenfolgen-Ersetzungstools für Ihr SQL-Tool, anstatt zu versuchen, die Abfragezeichenfolge selbst mit Standard-Python-String-Mechanismen zu erstellen. Es funktioniert besser so. Verwenden Sie MySQLdb? –
Ja, ich verwende MySQLdb, und wo finde ich diese Substitutionstools? – user1558746
Die Dokumente unter http://mysql-python.sourceforge.net/MySQLdb.html#functions-and-attributes sagen: "Beachten Sie, dass alle wörtlichen Prozentzeichen in der Abfragezeichenfolge, die an execute() übergeben werden, maskiert sein müssen, dh %% . " Verwenden Sie 'execute()'? Die erwähnten Substitutionstools @Silas werden unter http://mysql-python.sourceforge.net/MySQLdb.html#some-examples angezeigt. – LarsH