2013-07-12 58 views
0

出了什么问题这一行:SELECT查询错误

'$query = "SELECT * FROM messages WHERE (rlat => '".$latmin."' AND rlat <= '".$latmax."')  AND (rlon >= '".$lonmin."' AND rlon <= '".$lonmax."')";' 

Error: Error in query: SELECT * FROM messages WHERE (r_lat => '55.4655951769' AND r_lat <= '55.496987423') AND (r_lon >= '25.5338700398' AND r_lon <= '25.5989507602'). You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=> '55.4655951769' AND r_lat <= '55.496987423') AND (r_lon >= '25.5338700398' AN' at line 1...

谢谢!

+1

那些花车真的应该引用为字符串吗? –

+0

确保你[正确地逃脱一切](http://bobby-tables.com/php)。使用字符串连接是灾难的秘诀。 – tadman

回答

3

=>不是已知的operator。如果你想greater than or equal comparison operator,那么你是在>=之后。

顺便说一句,你可能会发现,你的查询可以更简洁与BETWEEN ... AND ...运营商这样写:

SELECT * 
FROM messages 
WHERE rlat BETWEEN $latmin AND $latmax 
    AND rlon BETWEEN $lonmin AND $lonmax 

你也应该调查变量传递到SQL通过parameters to prepared statements方式。

+0

非常感谢您的解决方案和建议,@eggyal。 –