Requêtes SQL paramétrées : navigation dans "TypeError : tous les arguments ne sont pas convertis lors du formatage de la chaîne"
Dans MySQLdb, l'exécution de requêtes SQL paramétrées peut conduire à un "TypeError : tous les arguments ne sont pas convertis lors du formatage de la chaîne." Cette erreur se produit lorsque la requête attend un nombre spécifique d'arguments, mais que les arguments fournis ne correspondent pas à l'attente.
Pour corriger cette erreur, remplacez la syntaxe héritée par une approche plus moderne. Au lieu d'utiliser :
cur.execute("SELECT * FROM records WHERE email LIKE '%s'", search)
Utilisez cette syntaxe :
cur.execute("SELECT * FROM records WHERE email LIKE %s", [search])
Le deuxième paramètre dans execute() est désormais une liste contenant les arguments à convertir. Chaque argument de cette liste doit être convertible en type de données attendu dans la requête. Dans ce cas, la requête attend une chaîne, la recherche doit donc être incluse dans une liste à un élément.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!