ajout d'une entrée à une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ajout d'une entrée à une table

Re: ajout d'une entrée à une table

par Ryle » 24 mai 2015, 14:44

Bonjour,

Tout est dit dans le message d'erreur :
"Invalid parameter number" : le nombre de paramètres passés dans ta requête ne correspond pas au nombre de valeurs attendues
"parameter was not defined" : au moins l'un des paramètres attendus n'est pas défini

Il ne reste plus qu'à comparer les paramètres de ta requêtes à ceux de ton tableau pour trouver celui ou ceux qui manquent / qui ne correspondent pas.
- Ta requête : :codef, :imag, :couleur, :prix, :caractéristiques, :codep
- Ton tableau : 'codef', 'im', 'coulr', 'prix', 'disc', 'codep'
Ton tableau de paramètre n'a pas d'index "imag", "couleur" ou "caractéristiques", ta requête ne peut donc pas fonctionner :)

Re: ajout d'une entrée à une table

par sarah mb » 22 mai 2015, 22:16

l'erreur est dans la requête d'ajout

$req = $bdd->prepare('INSERT INTO produit(codef, imag,couleur,prix,caractéristiques,codep) VALUES (:codef, :imag,:couleur,:prix,:caractéristiques,:codep)');
$req->execute(array(
'codef' => $table['codef'],
'im' => $im,
'coulr' => $coulr,
'prix' => $prix,
'disc' => $disc,
'codep' => $codep
));
exactement il indique la ligne de" ));"

ajout d'une entrée à une table

par sarah mb » 22 mai 2015, 21:43

bonsoir ,
j'ai fait ce script pour ajouter des produit à une table mais j'ai un message d'erreur qui s'affiche
voici le script


$codep=htmlspecialchars($_POST["code"]);
$im=$nom;
$coulr=htmlspecialchars($_POST["coulr"]);
$prix=htmlspecialchars($_POST["prix"]);
$tit=$_POST["description"];
$disc=htmlspecialchars($tit);
$h=$_POST["liste"];
echo "le disc est $h<br>";
if(empty($codep)||empty($im)||empty($coulr)||empty($prix)||empty($disc)||empty($h))
{
echo" saisis tout les champs svp";
}

else{
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=projets;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
echo $h ;
$affich = $bdd->prepare('SELECT codef FROM famille where nom =:x');
$affich->execute(array('x'=>$h));
$table=$affich->fetch();
$req = $bdd->prepare('INSERT INTO produit(codef, imag,couleur,prix,caractéristiques,codep) VALUES (:codef, :imag,:couleur,:prix,:caractéristiques,:codep)');
$req->execute(array(
'codef' => $table['codef'],
'im' => $im,
'coulr' => $coulr,
'prix' => $prix,
'disc' => $disc,
'codep' => $codep
));

}
?>



le message d'erreur est:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projet\ajout2_prod.php:113 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projet\ajout2_prod.php(113): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projet\ajout2_prod.php on line 113 :?: :cry: