web-dev-qa-db-fra.com

obtenir une erreur SQL

J'ai récemment restauré mon site Web joomla et il fonctionnait parfaitement, mais tout à coup, je reçois le message d'erreur suivant:

1064: vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe appropriée à utiliser ') ORDER BY `registerDate` DESC LIMIT 20' à la ligne 1.
SQL =

SELECT * FROM `jnx_users` WHERE `block`='0' AND `id` NOT IN() ORDER BY `registerDate` DESC LIMIT 20

Une erreur s'est produite lors du traitement de votre demande.

Vous ne pourrez peut-être pas visiter cette page à cause de:

  • un marque-page/favori obsolète
  • une adresse mal saisie
  • un moteur de recherche qui a une liste obsolète pour ce site
  • vous n'avez pas accès à cette page

Aller à la page d'accueil

Page d'accueil

Si les difficultés persistent, veuillez contacter l'administrateur système de ce site et signaler l'erreur ci-dessous.

1
Amirali Panjwani

Lors de l'utilisation de la clause IN () ou NOT IN (), des valeurs séparées par des virgules (,) ou une chaîne vide doivent être passés en tant que paramètre.

Par exemple: IN (1,2,3) OR IN ('') OR IN ('a', 'b', 'c')

2
Lokendra Joshi

Le problème que vous rencontrez est dû au filtre id NOT IN () de votre requête. Vous ne pouvez pas utiliser NOT IN () sans passer par un tableau, même s'il s'agit d'un tableau vide. Modifiez votre requête en ceci:

SELECT * FROM jnx_users WHERE block='0' AND id NOT IN('') ORDER BY registerDate DESC LIMIT 20

Notez les 2 citations simples dans la partie NOT IN ('') de la déclaration. Cela corrige ce problème. Vous pouvez également supprimer l'id NOT IN () ET la partie de la requête si vous n'allez pas filtrer aucun identifiant avec elle.

1
Terry Carter