Recherche dans une base de données

a marqué ce sujet comme résolu.

Bonjour à tous je développe une application en python et dans une partie de l’application il faut faire une recherche dans une base de données et afficher le résultat dans un tableau . Malheureusement ma requêtes de recherche me renvois une erreur

ci-dessous ma fonction pour la recherche

def recherche():

    num_bapteme = RECHERCHE_txtEntre.get()
    date_bapteme = RECHERCHEEntre.get()
    nom_pere = RECHERCHEEntre.get()
    prenom_baptise = RECHERCHEEntre.get()

    conn = mysql.connector.connect(host='localhost', user='root', password='', db='registre_stbernard')
    cursor = conn.cursor()
    cursor.execute(" select * from r_bapteme where numero_bapteme like ?", ('%' + num_bapteme + '%',))
    results = cursor.fetchall

l’erreur File "C:\Users\SF_RSI\PycharmProjects\Registre_StBernard\RECH_BAPTEME.py", line 16, in recherche cursor.execute(" select * from r_bapteme where numero_bapteme like ?", (’%' + num_bapteme + '%’,)) File "C:\Users\SF_RSI\PycharmProjects\pythonProject.venv\Lib\site-packages\mysql\connector\cursor_cext.py", line 352, in execute raise ProgrammingError( mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement

Merci de bien vouloir m’aider chez communauté

+0 -0

Bonjour,

Pour que ton code Python soit plus lisible, peux-tu l’encadrer comme ceci s’il te plait ?

```py
def recherche():
    ...
```

À la lecture de ton code, je suppose que tu utilises la bibliothèque mysql-connector-python pour effectuer tes requêtes ? Si j’en crois cette page de leur documentation, il faut que tu remplaces ? par %s comme ceci :

cursor.execute(" select * from r_bapteme where numero_bapteme like %s", ('%' + num_bapteme + '%',))

Si je me réfères à cette autre page de la documentation, il est aussi possible de nommer le paramètre comme ceci :

cursor.execute(" select * from r_bapteme where numero_bapteme like %(num_bapteme)s", {"num_bapteme": '%' + num_bapteme + '%'})
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte