Bonjour à tous !

J'ai un formulaire d'upload d'image classique avec une insertion du nom de l'image en BDD. Et j'ai aussi dans mon formulaire un select (menu déroulant) avec qui j'ai les nom de mes albums.

<select name="alb">
<option value="">Sélectionnez un album</option>
<?php
//On sélectionne les données
$req = $bdd->prepare('SELECT * FROM album ORDER BY id ASC');
$req->execute();
while($cat = $req->fetch(PDO::FETCH_OBJ)): ?>

<?php echo '<option value="'.$cat->id.'">'.$cat->nom.'</option>'; ?>    

<?php endwhile;?>
</select>

Ensuite je récupère la valeur du post :

$album=$_POST'alb'];

Puis je l'insère avec l'insertion du nom de l'image :

$req = $bdd->prepare('INSERT INTO portfolio(nom,album_id) VALUES(:nom,:album)');
$req->execute(array(
'nom'=>$nom,
'album_id'=>$album
)); //Ligne 58
$req->closeCursor();

Et quand j'envoi mon image et que je choisi l'album, j'ai cette erreur en retour : Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\Program Files (x86)\wamp\www\index.php on line 58

pourtant quand j’envoie un

echo "".$_POST'alb']."";

il me retourne la bonne valeur choisi.

J'espère avoir était assez compréhensible et je vous remercie d'avance de votre aide ! ZiOu

2 réponses


bhamzapro
Réponse acceptée

t'as mis :album dans la préparation donc :

$req->execute(array(
'nom'=>$nom,
'album'=>$album
));

et pas album_id

marrtin
Auteur

D'accord ok, vu que je me lance dans le PDO j'ai un peu de mal encore. Merci beaucoup ça fonctionne !