Cela ne fonctionne pas et affiche l'erreur "Impossible de gérer l'argument : str (Quality Tire Service à Ponteland), il doit être de type liste, tuple ou dictionnaire"
import mysql.connector from sentence_splitter import SentenceSplitter, split_text_into_sentences mydb = mysql.connector.connect( host="00.00.00.00", user="user", password="password", database="database" ) mycursor = mydb.cursor() sql = ("""SELECT blog_paragraph FROM blog_paragraph WHERE blog_topic like '%"%s"%'""") val = ("Providing Quality Tyre Services in Ponteland") mycursor.execute(sql,val) myresult = mycursor.fetchall() for x in myresult: print(x)
Cependant, lorsque vous transmettez la valeur directement dans la requête, celle-ci semble s'exécuter sans aucune erreur.
import mysql.connector from sentence_splitter import SentenceSplitter, split_text_into_sentences mydb = mysql.connector.connect( host="00.00.00.00", user="user", password="password", database="database" ) mycursor = mydb.cursor() sql = ("""SELECT blog_paragraph FROM blog_paragraph WHERE blog_topic like '%"Providing Quality Tyre Services in Ponteland"%'""") mycursor.execute(sql) myresult = mycursor.fetchall() for x in myresult: print(x)
J'ai essayé de passer le paramètre de chaîne via une variable mais cela ne semble pas fonctionner.
Découvrez la réponse plus tard
mycursor = mydb.cursor() val = "Providing Quality Tyre Services in Ponteland" sql = ("SELECT blog_paragraph FROM blog_paragraph WHERE blog_topic like '%%%s%%' " % val) mycursor.execute(sql) myresult = mycursor.fetchall()
Comme l'indique l'erreur :
Votre paramètre doit être d'un des types attendus, mais vous envoyez
str
Vous avez ajouté des parenthèses sur la variable
val
:Mais défini avec
元组
是由逗号,
au lieu de parenthèses, cela devrait fonctionner :