Comprendre l'erreur « Tous les paramètres n'ont pas été utilisés dans l'instruction SQL »
Lorsque vous travaillez avec des bases de données MySQL à l'aide de Python, vous pouvez rencontrer un erreur indiquant "Tous les paramètres n'ont pas été utilisés dans l'instruction SQL." Cette erreur se produit lorsque le nombre de paramètres spécifiés dans une requête SQL ne correspond pas au nombre de valeurs fournies dans le tuple de données.
Dans l'extrait de code fourni, l'instruction SQL prépare une requête INSERT pour ajouter un utilisateur à une table nommée 'tbluser' dans la base de données 'DB'. Cependant, le problème se pose dans la ligne suivante :
add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %d, %d, %s)")
Les paramètres entiers (c'est-à-dire %d) sont utilisés pour les valeurs 'startyear' et 'currentpos', tandis que le paramètre chaîne (%s) est utilisé pour les autres valeurs. Cette inadéquation entre les types de paramètres et les valeurs de données conduit à l'erreur.
Pour résoudre le problème, modifiez l'instruction SQL pour utiliser %s comme marqueur de paramètre pour toutes les valeurs :
add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %s, %s, %s)")
Ceci garantit que le nombre de paramètres correspond au nombre de valeurs fournies dans le tuple de données.
N'oubliez pas que différents adaptateurs de base de données peuvent utiliser différents marqueurs de paramètres, reportez-vous donc toujours à la documentation spécifique de l'adaptateur que vous utilisent.
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!