Erreur ! SQLSTATE[HY093]: Invalid parameter number:

Résolu
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -

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.

A voir également:

7 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour,

je pense qu'il faut modifier le code PHP.

0
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 583 Date d'inscription   Statut Membre Dernière intervention   32
 

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 583 Date d'inscription   Statut Membre Dernière intervention   32
 

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 583 Date d'inscription   Statut Membre Dernière intervention   32
 

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
$config = executeQuery($sql,$datas = NULL); // NON !

$config = executeQuery($sql,NULL); // OUI
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

ou encore

$datas = NULL;
$config = executeQuery($sql,$datas);
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

ou encore

$config = executeQuery($sql);
0
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 

Bonjour, merci beaucoup.

Cordialement.

0