Erreur PDO
- Accueil
- Forum
- Programmation
- PHP
- Erreur PDO
Shayem Le 22 décembre 2016 à 16:06 (Édité le 25 janvier 2019 à 17:52)
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 Le 22 décembre 2016 à 16:50 (Édité le 1 janvier 1970 à 01:00)
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;
}