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>";

}

}

2 réponses


locohigh
Auteur
Réponse acceptée

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'));