Bonsoir,
voici mon code PHP :
et le message d'erreur :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $sql = <<<sql insert into search (user_id, ville_id) values ( (select user_id from user where user_login=:user_nom) , (select ville_id from villes where ville_nom LIKE :ville_nom) ) sql; $smt = $pdo->prepare($sql); $res = $smt ->execute(array(':user_login' => $user_nom,':ville_nom' => "%".$ville_nom."%"));
Pourtant si je teste la même requête avec un jeu de données (n'importe lequel) avec MysqlWorkbench, l'insertion est bien faite.Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number in C:\projets\dvp\copie\search.php:65 Stack trace: #0 C:\projets\dvp\copie\search.php(65): PDOStatement->execute(Array) #1 {main} thrown in C:\projets\dvp\copie\search.php on line 65
Voici le DDL des tables search, user et villes :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 insert into search (user_id, ville_id) values ( (select user_id from user where user_login='laurent') , (select ville_id from villes where ville_nom LIKE '%mad%'))
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 CREATE TABLE `search` ( `user_id` varchar(30) NOT NULL DEFAULT 'null', `ville_id` varchar(11) NOT NULL DEFAULT 'null' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `user` ( `user_id` tinyint NOT NULL AUTO_INCREMENT, `user_login` varchar(20) NOT NULL, `user_password` varchar(34) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=latin1; CREATE TABLE `villes` ( `ville_ID` int NOT NULL AUTO_INCREMENT, `ville_nom` varchar(15) NOT NULL, `villes_texte` text NOT NULL, PRIMARY KEY (`ville_ID`) ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
Pourquoi SVP ?
Partager