Erreur PDO

Ce topic a été résolu
Shayem

Shayem Le 22 décembre 2016 à 16:06 (Édité le 25 janvier 2019 à 17:52)

Bonjour/Bonsoir à toutes et à tous.
Je me suis lancé dans un projet de création de réseau social en PHP et j'ai une erreur qui apparaît dans mon code d'inscription.

Le code :

$SQLAddUser = $odb -> prepare("INSERT INTO `utilisateurs` VALUES(NULL, :nom, 😋renom, :naissance, :sexe, :email, 😋assword, 0, 0, :img_profil, :img_banniere, :ville, :code_postal, :region, :emploi, :description, :inscription, :unique-key)");
$SQLAddUser -> execute(array(':nom' => $inscription_nom, ':prenom' => $inscription_prenom, ':naissance' => $inscription_date, ':sexe' => $inscription_sexe, ':email' => $inscription_email, ':password' => hash('SHA512', $inscription_password), ':img_profil' => 'assets/img/default_avatar.png', ':img_banniere' => 'assets/img/default_background.jpg', ':ville' => $inscription_ville, ':code_postal' => $inscription_codepostal, ':region' => $inscription_region, ':emploi' => '', ':description' => '', ':inscription' => time(), ':unique-key' => $inscription_key));
L'erreur :

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\******\connexion.php on line 74
TheOldNoob

TheOldNoob Le 22 décembre 2016 à 16:50

Salut l'ami,

tout est dans le warning 😀 
Il te dit que le nombre de paramètre est invalide. Se qui signifie que tu a pas le même nombre de paramètre dans ta requête que dans ton exécute.
De plus ta requête est mal préparer.
Je te met un petit exemple de comment je prépare une requête, a toi d'adapter le reste.

   $res = $pdo->prepare('INSERT INTO date_concert (band, dateC, heureC, place, adress, city, tarif) VALUES (:band, :dateC, :heureC, 😋lace, :adress, :city, :tarif)');
        $res->bindValue(':band',        $post['band'],    PDO::PARAM_STR);
        $res->bindValue(':dateC',       $post['dateC'],   PDO::PARAM_STR);
        $res->bindValue(':heureC',      $post['heureC'],  PDO::PARAM_STR);
        $res->bindValue(':place',       $post['place'],   PDO::PARAM_STR);
        $res->bindValue(':adress',      $post['adress'],  PDO::PARAM_STR);
        $res->bindValue(':city',        $post['city'],    PDO::PARAM_STR);
        $res->bindValue(':tarif',       $post['tarif'],   PDO::PARAM_STR);

if($res->execute()){
            // Message de réussite
        }
        else {
            die;
        }
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte