2010-03-09 9 views
1

C'est une question que je fais avec MySQL avec PHP
Ceci est la ligne de requêteQuel est le problème avec ma requête MySql?

<?php 
$query = "SELECT * FROM node WHERE type = 'student_report' AND uid = '{$uid}' LIMIT 1 ORDER BY created DESC"; 
?> 

je reçois l'erreur suivante

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 'ORDER BY created DESC' at line 1 
+2

Vous devriez prendre l'habitude d'utiliser les instructions préparées pour SQL requêtes. –

Répondre

1

Vous n'avez pas besoin des accolades autour $uid

Si cela ne le résout pas, essayez de mettre la clause LIMIT après la clause order by, qui est la méthode recommandée. Source Mysql select syntax.

+0

J'ai enlevé les accolades toujours avec la même erreur. En fait, cela fonctionne si je supprime $ uid et mettre un nombre. Mais j'ai besoin d'utiliser la variable – Anytime

+0

On dirait que votre $ uid n'est pas rempli correctement avant d'exécuter la requête. Essayez d'afficher la valeur de $ uid juste avant la requête et assurez-vous qu'elle a une valeur significative. – codaddict

+0

$ uid a une valeur de 15 – Anytime

3

Vous devez avoir la clause limite en dernier.

0

imprimer l'ensemble des requêtes SQL ($query), non seulement $uid et aussi la clause LIMIT après order by

1

Votre requête doit être:

$query = "SELECT * FROM node WHERE type = 'student_report' AND uid = $uid ORDER BY created DESC LIMIT 1"; 
Questions connexes