Question

Voici ma question:

select * 
  from (select *, 3956 * 2 * ASIN(SQRT(POWER(SIN(RADIANS(45.5200077 - lat)/ 2), 2) + COS(RADIANS(45.5200077)) * COS(RADIANS(lat)) * POWER(SIN(RADIANS(-122.6942014 - lng)/2),2))) AS distance 
          from stops 
      order by distance, route asc) as p 
group by route, dir 
order by distance asc 
   limit 10

Cela fonctionne bien à la ligne de commande et dans phpMyAdmin. J'utilise Dbslayer pour se connecter à MySQL via mon back-end JavaScript, et la demande est retour d'une erreur 1064.

Voici la chaîne de demande DBSlayer codé:

  

http: // localhost: 9090 / db {% 22SQL% 22:% 22select% 20 * % 20from% 20% 20% 28select *,% 203956% 20% * 202% * 20% 20ASIN% 28SQRT% 28POWER% 28SIN% 28RADIANS% 2845,5200077% 20-% 20lat% 29 /% 202% 29% 202% 29% 20 +% 20COS% 28RADIANS% 2.845,5200077% 29% 29% 20% * 20COS% 28RADIANS% 28lat% 29% 29% 20% * 20POWER% 28SIN% 28RADIANS% 28 à 122,6942014% 20-% 20lng% 29/2% 29, 2% 29% 29% 29% 20AS% 20distance% 20from% 20% 60stops% 60% 20order% 20by% 20% 60distance% 60% 20% 60route% 60% 20asc% 29% 20AS% 20p% 20group% 20by% 20 % 60route% 60,% 20% 60dir% 60% 20order% 20by% 20% 60distance% 60% 20asc% 20limit% 2010% 22}

Et la réponse:

  

{ « mysql_errno »: 1064, « mysql_error »: « Vous avez une erreur dans votre syntaxe SQL, consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser à proximité « (radians (45.5200077)) * COS (radians (lat)) * POWER (SIN (radians (-122,6942014 - lng » à la ligne 1" , "serveur": "TriMet"}

Merci!

Était-ce utile?

La solution

Une source immédiate possible de votre problème est le codage URL. Je vois l'opérateur plus est transmis en l'état. C'est dangereux, parce que + utilisé pour signifier Espace dans le codage traditionnel. http://www.faqs.org/rfcs/rfc1738

Autres conseils

...distance%60%20asc%20...

Comment allez-vous échapper à la sql? On dirait que vous manquez la « route », de sorte que ce qui précède se lit « distance, asc ». On dirait qu'il descend de là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top