,如果你有數值,你應該避免周圍的瓦爾
單引號,你應該使用CONCAT像
(爲有,如果你用「$ visibledistance」你EVAL HAVING distance < '4'
(你是EVAL你距離對於字符串)
展望代碼
不使用聚合函數,所以你不需要有你可以通過
地方使用(但諾伊別名)郝曉紅和distcint代替組
$query=("SELECT distinct
subject,username,message,timestamp,(
6371 * acos (
cos (radians($latitude))
* cos(radians(Messages.latitude))
* cos(radians(Messages.longitude) - radians($longitude))
+ sin (radians($latitude))
* sin(radians(Messages.latitude))
)
) AS distance FROM Messages WHERE username ='pb' AND ((subject LIKE concat('%', '$search', '%')
OR (message LIKE concat('%','$search','%'))
WHERE (
6371 * acos (
cos (radians($latitude))
* cos(radians(Messages.latitude))
* cos(radians(Messages.longitude) - radians($longitude))
+ sin (radians($latitude))
* sin(radians(Messages.latitude))
)
) < $visibledistance
ORDER BY timestamp");
*「如果我在桌面上用下面的方式查詢:」* - 您是否關閉了每條語句?這是未來(新手)訪問者的技術支持,他們可能認爲這是在php中的有效語法。 –
在旁註中,我希望這不會進入從互聯網執行的代碼。這是SQL注入的定義。 – v010dya
請參閱http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php和http://stackoverflow.com/documentation/php/5828/pdo/2685/preventing- sql -injection-with-parameterized-queries#t = 201703091904411986445欲瞭解更多信息 – WOUNDEDStevenJones