خطأ MySQL 1064 ، يعمل في سطر الأوامر و phpmyadmin ؛ ليس في التطبيق

StackOverflow https://stackoverflow.com/questions/2185188

سؤال

ها هو استعلامي:

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

هذا يعمل بشكل جيد في سطر الأوامر وفي phpmyadmin. أنا استخدم dbslayer للاتصال بـ MySQL عبر الواجهة الخلفية JavaScript الخاصة بي ، ويعيد الطلب خطأ 1064.

هنا هي سلسلة طلب DBSLayer المشفرة:

http: // localhost: 9090/dB؟ 29/٪ 202 ٪ 29 ، ٪ 202 ٪ 29 ٪ 20+٪ 20COS ٪ 28Radians ٪ 2845.5200077 ٪ 29 ٪ 29 ٪ 20*٪ 20COS ٪ 28Radians ٪ 28lat ٪ 29 ٪ 20*٪ 20power ٪ 28sin ٪ 28-122.6942014 ٪ 20- ٪ 20lng ٪ 29/2 ٪ 29،2 ٪ 29 ٪ 29 ٪ 29 ٪ 20AS ٪ 20DISTANCE ٪ 20FROM ٪ 20 ٪ 60STOPS ٪ 60 ٪ 20BY ٪ 20BY 60DISTANCE ٪ 60 ، ٪ 20 ٪ 60ROUTE ٪ 60 ٪ 20 ٪ 29 ٪ 20AS ٪ 20p ٪ 20group ٪ 20by ٪ 20 ٪ 60Route ٪ 60 ، ٪ 20 ٪ 60dir ٪ 60 ٪ 20dord ٪ 20by ٪ 20 ٪ 60distance ٪ 60 ٪ 20asc ٪ 20limit ٪ 2010 ٪ 22}

والرد:

{"mysql_errno": 1064 ، "mysql_error": "لديك خطأ في بناء جملة SQL الخاص بك ؛ تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL الخاص بك لاستخدام بناء الجملة الأيمن بالقرب من" (45.5200077) LAT)) * Power (SIN (Radians (-122.6942014 - LNG 'at Line 1 "،" Server ":" Trimet "}

شكرًا!

هل كانت مفيدة؟

المحلول

مصدر فوري محتمل لمشكلتك هو ترميز عنوان URL. أرى أن المشغل الزائد ينتقل كما هو. هذا خطير ، لأن + اعتاد أن يعني الفراغ في الترميز التقليدي. http://www.faqs.org/rfcs/rfc1738

نصائح أخرى

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

كيف تهرب من SQL؟ يبدو أنك تفتقد "الطريق" ، لذلك يقرأ أعلاه "المسافة ، ASC". يبدو أنه ينحدر من هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top