Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 12h06   #1
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Par défaut Erreur PDO sur SELECT

Bonjour,

J'ai un souci sur une requête préparée et je ne trouve pas d'où vient l'erreur, un regard neuf pourra sûrement m'aider.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
		//l'article existe t-il, appartient-il à l'utilisateur 
			$sql_test_validite = $bdd->prepare("SELECT u_id, a.id_article,id_type_article FROM pevtt_article_utilisateur a"
												. "LEFT JOIN pevtt_article_type_article b ON a.id_article = b.id_article"
												. "WHERE u_id = :u_id"
												. "AND a.id_article = :id_article_a_modifier"
												. "AND id_type_article = :id_type_article");
 
			$sql_test_validite->execute(array(
										":u_id" => $fsb->userdata('u_id'),
										":id_article_a_modifier" => $id_article_a_modifier,
										":id_type_article" => $id_type_article
										));
			$tab_test_validite = $sql_test_validite->fetch();

Erreur :

Code :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /homepages/23/d281297373/htdocs/admin/php/articles/rediger_article.php:49 Stack trace: #0 /homepages/23/d281297373/htdocs/admin/php/articles/rediger_article.php(49): PDOStatement->execute(Array) #1 {main} thrown in /homepages/23/d281297373/htdocs/admin/php/articles/rediger_article.php on line 49
Ligne 49 :

Apparemment, il y a un souci avec le troisième paramètre mais je ne comprends pas lequel.

Par avance, merci de votre aide.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 12h30   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 663
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 663
Points : 5 388
Points : 5 388
Ce message d'erreur peut signifier que la liste des paramètres que tu passes à execute contient au moins un paramètre qui n'est pas dans la requête ou ne contient pas un paramètre de la requête (la plupart du temps, c'est une faute de frappe bête du genre id_atricle au lieu id_article)
Dans ton cas, c'est plus tordu : c'est la concaténation de ta requête qui est incorrecte. Si tu fais un echo de ta requête, tu vas obtenir ça :
Code sql :
SELECT u_id, a.id_article,id_type_article FROM pevtt_article_utilisateur aLEFT JOIN pevtt_article_type_article b ON a.id_article = b.id_articleWHERE u_id = :u_idAND a.id_article = :id_article_a_modifierAND id_type_article = :id_type_article
Ce qui a peu de chances de fonctionner
Ajoute des espaces au début et à la fin de chaque morceau de la concaténation et ça marchera beaucoup mieux
Code :
1
2
3
4
5
$req = "SELECT u_id, a.id_article,id_type_article FROM pevtt_article_utilisateur a "
                                                . " LEFT JOIN pevtt_article_type_article b ON a.id_article = b.id_article "
                                                . " WHERE u_id = :u_id "
                                                . " AND a.id_article = :id_article_a_modifier "
                                                . " AND id_type_article = :id_type_article ";
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 12h34   #3
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour et merci,

Bien joué, c'était ça !
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h02.


 
 
 
 
Partenaires

Hébergement Web