Sto tentando di eseguire una query per cercare 3 tabelle in un database utilizzando MySQL tramite Python. Ogni volta che provo ad eseguire la seguente stringa come una query, mi dà un errore sulla concatenazione nella stringa.Python: ValueError: carattere di formato non supportato '' '(0x27) all'indice 1
"SELECT fileid FROM files WHERE description LIKE '%" + search + "%' OR filename LIKE '%" + search + "%' OR uploader LIKE '%" + search + "%' ORDER BY fileid DESC"
Questo è l'errore che mi dà:
ValueError: unsupported format character ''' (0x27) at index 1
Se rimuovo il personaggio si chiede perché allora devo togliere anche l'%, che si ferma la query dalla realtà di lavoro in modo corretto. Cosa posso fare per risolvere questo problema, dato che sono piuttosto nuovo in Python.
Grazie, Kris
Utilizzare gli strumenti di sostituzione delle stringhe incorporati per lo strumento SQL invece di provare a creare la stringa di query manualmente con le meccaniche di stringa standard di Python. Funziona meglio in questo modo. Stai usando MySQLdb? –
Sì, sto usando MySQLdb e dove posso trovare questi strumenti di sostituzione? – user1558746
I documenti su http://mysql-python.sourceforge.net/MySQLdb.html#functions-and-attributes dicono, "Si noti che qualsiasi segno di percentuale letterale nella stringa di query passata a execute() deve essere preceduto da escape, ovvero %% ". Stai usando 'execute()'? Gli strumenti di sostituzione @Silas citati sono mostrati su http://mysql-python.sourceforge.net/MySQLdb.html#some-examples – LarsH