我使用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语句存在问题。
答案 0 :(得分:-1)
尝试添加qoutes(')
所以:
$query = "SELECT * FROM property WHERE latitude BETWEEN '" .$lat1 ."' AND '" .$lat2 ."' AND longitude BETWEEN '" .$lng1 ."' AND '" .$lng2 . "'";
告诉我们是否有帮助