Bonjour,
J'ai le message d'erreur suivant : "Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in..."
Impossible de trouver d'où vient l'erreur !
Quelqu'un aurait une idée ??
Merci de votre aide ! :-p
Voici mon code :
try{
$DB = new PDO('mysql:host=localhost;dbname=formationsql','root','');
$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo "base de données non disponible";
}
if(!empty($_POST)){
extract($_POST);
$valid = true;
if(!preg_match("/^[a-z0-9-_.]+\@[a-z0-9-_.]+.[a-z]{2,3}$/i", $email)){
$valid = false;
echo "email pas valide";
}
if($valid){
extract($_POST);
$sql = $DB->prepare("INSERT INTO utilisateurs(nom,intitule,categorie,email,site,fichier,message) VALUES(:nom, :intitule, :categorie, :email, :site, :fichier, :message)");
$sql->execute();
echo "<pre>";
print_r($d);
echo "</pre>";
}
}
C'est bon j'ai trouvé d'où venait l'erreur... Tu n'avais pas tort benjamin mais j'ai une méthode peut-être plus claire :
try{
$DB = new PDO('mysql:host=localhost;dbname=formationsql','root','');
$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo "base de données non disponible";
}
if(!empty($_POST)){
extract($_POST);
$valid = true;
if(!preg_match("/^[a-z0-9-_.]+\@[a-z0-9-_.]+.[a-z]{2,3}$/i", $email)){
$valid = false;
echo "email pas valide";
}
if($valid){
extract($_POST);
$d = array(
'nom' => $nom,
'intitule' => $intitule,
'categorie' => $categorie,
'email' => $email,
'site' => $site,
'fichier' => $fichier,
'message' => $message
);
$sql = $DB->prepare("INSERT INTO utilisateurs(nom,intitule,categorie,email,site,fichier,message) VALUES (:nom, :intitule, :categorie, :email, :site, :fichier, :message)");
$sql->execute($d);
}
}
eu ... tu n'aurais pas oublié de renseigner les valeurs nom, intitule, categorie etc par hasard ?
$sql=$DB->execute(array(':nom' => 'mon nom', ':categorie' => 'redma_categorie'));