Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 24/06/2012, 18h01   #1
le nOoB
Invité régulier
 
Inscription : avril 2011
Messages : 62
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 62
Points : 9
Points : 9
Par défaut erreur de syntaxe requête préparé et condition LIMIT

Bonjour a tous,
J'ais un petit soucis de syntaxe que je n'arrive pas a résoudre sur une requête.

Erreur retournée : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0','12'' at line 1

code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
$dbr_add_cat = $connexion->prepare("SELECT id, titre, titre_url, contenu, cat, img_screen FROM fiche WHERE cat=:cat AND valid=:valid ORDER BY id  LIMIT :page,:limit");
		$dbr_add_cat -> bindValue(cat, $cat['id']);
		$dbr_add_cat -> bindValue(valid, 1);
		$dbr_add_cat -> bindvalue(page, $page_calc);
		$dbr_add_cat -> bindvalue(limit, 12);
		$dbr_add_cat -> execute();
		$fiches = array();
		while($cat_add = $dbr_add_cat->fetch())
			{
			$dbr_cat = $connexion->prepare("SELECT id, url, images, nom FROM categories WHERE id=:id");
			$dbr_cat -> bindValue( id, $cat_add['cat']);
			$dbr_cat -> execute();
			$cat = $dbr_cat -> fetch();
 
			$cat_add['id'];
			$cat_add['titre'];
			$cat_add['titre_url'];
			$cat_add['contenu'];
			$cat_add['cat'];
			$cat_add['img_screen'];
			$cat_add['cat_url'] = $cat['url'] ;
			$cat_add['cat_images'] = $cat['images'];
			$cat_add['cat_nom'] = $cat['nom'];
			$fiches[] = $cat_add;	
			}
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2012, 18h36   #2
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
rajoute en 3eme attribut PDO::PARAM_INT, pour page et limit

par contre ton code est pas dutout optimisé, faut faire des jointures c'est fait pour ça les SGDB (de plus que ta requête est dans la boucle, ce qui n'a pas dans sens pour une requête préparée)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2012, 08h50   #3
redoran
Membre émérite
 
Avatar de redoran
 
Homme Redouane Hamadouche
Développeur-Amateur
Inscription : juin 2010
Messages : 1 326
Détails du profil
Informations personnelles :
Nom : Homme Redouane Hamadouche
Âge : 41
Localisation : Algérie

Informations professionnelles :
Activité : Développeur-Amateur
Secteur : Santé

Informations forums :
Inscription : juin 2010
Messages : 1 326
Points : 985
Points : 985
Envoyer un message via Skype™ à redoran
Salam ; pour les bindvalue: faut ajouté les PDO:: PARAM_... a tous les paramètres.
exemple var : integer
Code :
$req->bindValue(':var', $var, PDO::PARAM_INT);
pour les autres faut voir documentation http://php.net/manual/fr/pdostatement.bindvalue.php

en plus une requête préparé de type select dans une boucle
faut suivre conseille de stealth35
redoran est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h37.


 
 
 
 
Partenaires

Hébergement Web