Erreur ! SQLSTATE[HY093]: Invalid parameter number:

Résolu/Fermé
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 - 29 janv. 2023 à 11:35
yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 - 30 janv. 2023 à 12:49

Bonjour, je viens de restaurer mon site internet en local avec Wampserver. En ouvrant mon site j'ai une mauvaise surprise. Voici l'erreur!

Erreur ! SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

Malgrès des recherches je n'arrive pas à résoudre cette erreur? Je vois qu'il s'agit peut-être du nombre de paramètre qui sont invalide...

Pouvez-vous m'aider s'ils vous plait, je vous remercie.

7 réponses

yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
29 janv. 2023 à 11:56

bonjour,

je pense qu'il faut modifier le code PHP.

0
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 32
29 janv. 2023 à 13:33

Bonjour c'est à dire modifié? mon site étais sur un hébergeur il y a encore 2 mois et tout fonctionnait bien.

0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
29 janv. 2023 à 14:18

Bonjour,

Ce message indique une erreur lors de l'éxecution d'une requête SQL.

Le nombre de variables attendues par la requête ne correspond pas au nombre de variables utilisées pour le traitement de la requête..

Bien entendu, sans voir le code php correspondant.. impossible de te dire exactement à quel endroit se trouve cette erreur.


0
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 32
29 janv. 2023 à 21:39

Bonjour, si je supprime cette requète tout redevient normal. Pouvez-vous me dire ce qu'il ne va pas dans cette requète.

Je vous remercie

// Récupérer la configuration du site
$sql = "SELECT * FROM cdc_configsite";
$config = executeQuery($sql,$datas);
while ($donnees = $config->fetch()) { ${$donnees->clef} = $donnees->valeur; }
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
29 janv. 2023 à 21:55

Que contient ta fonction  executeQuery ?

Que contient ta variables $datas ? ( elle devrait être null vu que ta requête n'attend aucune variable.. )

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 32
29 janv. 2023 à 22:07

Voici la fonction qui sert à faire les requètes SQL elle contient déjà le try/catch.

function executeQuery($sql,$datas = NULL) {
    $bdd = bdd();
    //exécution de la requête
    try {
        $requete = $bdd->prepare($sql);
        $requete->execute($datas);
    } catch(Exception $e) {
      // en cas d'erreur :
        echo " Erreur ! ".$e->getMessage();
        exit(0); // en cas d'erreur.. arrête le script !
    }
    return $requete;
}
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
29 janv. 2023 à 22:18

Oui, et c'est moi qui est du te la donner cette fonction...

Mais là .. je n'ai pas parlé du tout du try/catch ...  je t'ai demandé ce que tu envoies dans ta variable $datas ....   qui, pour la requête que tu veux exécuter... doit être NULL ( sinon.. c'est pour ça que tu as cette erreur ).

PS: Essaye de bien lire et comprendre ce que je t'écris.. ça évitera qu'on perdu du temps inutilement. Merci.

0
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 32
30 janv. 2023 à 07:31

Bonjour j'ai plus d'erreur pouvez-vous me confirmer si ce que j'ai fait est correct.

Je vous remercie.

// Récupérer la configuration du site
$sql = "SELECT * FROM $cfg";
$config = executeQuery($sql,$datas = NULL);
while ($donnees = $config->fetch()) { ${$donnees->clef} = $donnees->valeur; }
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
30 janv. 2023 à 08:30
$config = executeQuery($sql,$datas = NULL); // NON !

$config = executeQuery($sql,NULL); // OUI
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703 > jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024
30 janv. 2023 à 08:36

ou encore

$datas = NULL;
$config = executeQuery($sql,$datas);
0
yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024
30 janv. 2023 à 12:49

ou encore

$config = executeQuery($sql);
0
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 32
30 janv. 2023 à 12:30

Bonjour, merci beaucoup.

Cordialement.

0