2010-09-16 4 views
0

Le message d'erreur exact est:PHP erreur MYSQL - « Vous avez une erreur dans votre syntaxe SQL, vérifier ... pour la bonne syntaxe à utiliser près

Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser à proximité « où rfflag = » 0 « » à la ligne 1

Salut,

Je suis en train d'obtenir des scripts php travail et il meurt avec le message d'erreur ci-dessus Il y a deux endroits où rfflag est utilisé dans e Requête SQL:

$_SESSION['lang']=$objTerm->my_get_one("select min(id) from " 
    .$objTerm->TABLE['languages']." where status='1' and rfflag='0'"); 

$rs_lang=$objTerm->execute_query("select id,language from " 
    .$objTerm->TABLE['languages']." where `status`='1' and `rfflag`='0'"); 

Comment puis-je déterminer le problème à l'origine du problème? Ou le problème est-il autre chose?

+0

Êtes-vous sûr à 100% que 'rfflag' n'est pas utilisé dans une autre requête quelque part? –

Répondre

2

Echo:

"select id,language from ".$objTerm->TABLE['languages']." where status='1' and rfflag='0'" 

et ceci:

"select min(id) from ".$objTerm->TABLE['languages']." where status='1' and rfflag='0'" 

Lancez ensuite exécuter chaque sortie dans votre outil de développement sql favori. Les erreurs seront affichées ici.

1

Comment puis-je déterminer celui qui cause le problème?

Retirez l'une des requêtes. Voyez si cela arrive encore.

Sur une pensée secondaire, je vous conseille de changer votre code de requête MySQL afin qu'il n'utilise pas mourir() pour imprimer le message d'erreur. Utilisez trigger_error ou des exceptions à la place, de cette façon vous obtiendrez automatiquement une trace de quelle ligne l'a provoqué.

0

Comment puis-je déterminer lequel cause le problème? Utilisez la fonction trigger_error() pour générer un message d'erreur.


je suppose (je dois deviner parce que vous fournissez pas de code) que vous utilisez die() à la sortie d'une erreur.
si vous changez cette fonction mauvaise pratique trigger_error(), vous pourrez voir le numéro de ligne où l'erreur est survenue.
Si vous ajoutez non seulement mysql_error() à sa sortie, mais aussi lui-même interroger, vous serez en mesure de voir le code de problème aussi.

0

je suppose que $objTerm->TABLE['languages'] est définie ou n'a pas la valeur que vous vous attendez.

As sheeks06 has already suggested, juste écho à la requête pour voir si tout est comme prévu:

$query = "select min(id) from " 
    .$objTerm->TABLE['languages']." where status='1' and rfflag='0'"; 
echo $query; 
$_SESSION['lang']=$objTerm->my_get_one($query); 

$query = "select id,language from " 
    .$objTerm->TABLE['languages']." where `status`='1' and `rfflag`='0'"; 
echo $query; 
$rs_lang=$objTerm->execute_query($query); 
Questions connexes