我的postgress查询语句的结果没有值?

时间:2017-07-29 17:21:32

标签: php html postgresql

我使用postgress相对较新,所以我试图在不使用PDO语句的情况下获得结果。 我的代码如下,现在我成功地与数据库建立了连接,在执行时我的网页没有结果。在更进一步的检查时,我注意到while循环没有执行我知道它与我的查询语句不是逻辑错误,因为我在数据库上运行相同的查询并返回值。

我认为问题出在while循环中,但我无法理解。对数据库的此查询返回了43个结果。

$query = "SELECT * FROM property WHERE latitude BETWEEN " .$lat1 ." AND " .$lat2 ." AND longitude BETWEEN " .$lng1 ." AND " .$lng2; 

        $result = pg_query($db, $query); 
        if (!$result) { 
            echo "Problem with query " . $query . "<br/>"; 
            echo pg_last_error(); 
            exit(); 
        } 



        pg_result_seek($result,0);
        while($myrow = pg_fetch_assoc($result)) { 
            echo "reached";
            printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", $myrow['p_id'], htmlspecialchars($myrow['type']), htmlspecialchars($myrow['latitude']), htmlspecialchars($myrow['longitude']));
            printf ("<br>");

再次重新迭代,结果数组不为空,因为它不会抛出错误消息,我认为只有while语句存在问题。

1 个答案:

答案 0 :(得分:-1)

尝试添加qoutes(')

所以:

$query = "SELECT * FROM property WHERE latitude BETWEEN '" .$lat1 ."' AND '" .$lat2 ."' AND longitude BETWEEN '" .$lng1 ."' AND '" .$lng2 . "'"; 

告诉我们是否有帮助