簡體   English   中英

MySQL查詢正在使用MySQL命令行,但不能使用MySQLi

[英]MySQL query is working with MySQL command line but not MySQLi

我正在使用Google的算法根據我的PHP腳本中的坐標查找附近的位置:

if ($requestType == "closestPeers") {
    $clientsCoordinates = mysqli_fetch_row(mysqli_query($connection,"SELECT latest_latitude,latest_longitude FROM Assets WHERE username='{$username}'"));
    $longitude = $clientsCoordinates[0];
    $latitude = $clientsCoordinates[1];
    $miles = 0.0568182; /* 300 Feet, a bit larger than average Midtown Manhattan blocks */
    $closestUsersQuery = "SELECT *, 
                            ( 3959 * acos( cos( radians('$latitude') ) * 
                            cos( radians( latest_latitude ) ) * 
                            cos( radians( latest_longitude ) - 
                            radians('$longitude') ) + 
                            sin( radians('$latitude') ) * 
                            sin( radians( latest_latitude ) ) ) ) 
                            AS distance FROM Assets HAVING distance < '$miles' ORDER BY distance ASC LIMIT 0, 5";
    $closestUsers = mysqli_fetch_all(mysqli_query($connection,$closestUsersQuery));
    foreach ($closestUsers as $nearbyUser) {
        $responseArray[$nearbyUser[1]] = $nearbyUser[4];
    }
} else if ($requestType == "cellImage") {

但事實是,無論出於何種原因,該查詢都無法正常工作。 我可以在該mysqli_query() mysqli_num_rows()上調用mysqli_num_rows() ,我將看到10 ,但是當我使用此查詢時,只會得到一個空數組。

但是,我可以設置$closestUserQuery = "SELECT * FROM Assets"給我一個包含所有行的數組,這顯然效率很低並且肯定不適合此特定應用程序。 我還可以在MySQL的命令行界面中調用Google提供的查詢,並且確切地得到了我要查找的內容-來自附近數據庫的結果。

這些是“ Assets表的列: 在此處輸入圖片說明

顯然0.0568182英里太少或什么。 如果我將其設置為更高,則查詢將運行,但不會累加,因為它在0.0568182英里處的MySQL命令行中返回了結果。 感謝您的閱讀和幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM