Bonjour , je test un script avec une boucle pour enregistrer 2 valeurs avec une requête préparé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$bdd = new PDO('mysql:host=localhost; dbname=test','root','test');
 
$nombre = array('un','deux','trois','quatre','cinq');
$sql = "INSERT INTO registry(name,value) VALUES(name=:name,value=:value)";
$req = $bdd->prepare($sql);
 
$i=1;
foreach($nombre as $N)
{
	echo $N."<br/>";
	$req->execute(array("name"=>$N,"value=$i"));
	$i++;
}
j'ai une erreur

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /var/www/moodle24/moodle/sql.php on line 12 Call Stack: 0.0001 330408 1. {main}() /var/www/moodle24/moodle/sql.php:0 0.0004 333744 2. PDOStatement->execute() /var/www/moodle24/moodle/sql.php:12 deux
voici la table registry
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS `registry` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `value` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

pour insérer ou lire il faut toujours utiliser execute() , ou pour insérer il est nécessaire d'utiliser exec().

quelle est mon erreur , je vous remercie d'avance pour vos réponses