Domanda

Questa è la mia domanda:

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

Questo funziona bene nella riga di comando e in phpMyAdmin. Sto utilizzando Dbslayer di connettersi a MySQL tramite il mio backend JavaScript, e la richiesta è restituendo un errore di 1064.

Questa è la stringa di richiesta DBSlayer codificata:

  

http: // localhost: 9090 / db {% 22SQL% 22:?% 22select% 20 * % 20from% 20% 28select% 20 *,% 203956% 20% * 202% * 20% 20ASIN% 28SQRT% 28POWER% 28SIN% 28RADIANS% 2845,5200,077 mila% 20-% 20lat% 29 /% 202% 29% 202% 29% 20 +% 20COS% 28RADIANS% 2845,5200,077 mila% 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% 60% 60dir% 20order% 20by% 20% 60% 60distance% 20asc% 20limit% 2010% 22}

E la risposta:

  

{ "mysql_errno": 1064, "mysql_error": "Hai un errore nella sintassi SQL, controllare il manuale che corrisponde alla vostra versione del server MySQL per la sintassi del diritto di usare in prossimità '(RADIANTI (45,5,200077 millions)) * COS (RADIANTI (lat)) * POWER (SIN (RADIANTI (-122,6942014 - lng' at line 1" , "server": "TRIMET"}

Grazie!

È stato utile?

Soluzione

Una possibile fonte immediata del problema è la codifica URL. Vedo l'operatore più viene trasmesso così com'è. Questo è pericoloso, perché + usato per indicare spazio nella codifica tradizionale. http://www.faqs.org/rfcs/rfc1738

Altri suggerimenti

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

Come stai sfuggendo sql? Sembra che stai manca il "percorso", in modo che il sopra si legge "distanza, asc". Sembra che va in discesa da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top