我有一个 SELECT SQL 语句,它返回纬度、经度和距离作为结果(使用半正弦公式)。现在我需要将这些值作为变量存储在 PHP 脚本中,因为我需要对结果进行进一步处理。谁能告诉我如何做到这一点?
这是我的 SQL 语句
已更新
$query = $db->prepare("SELECT `Latitude`, `Longitude`, (6378160 * acos( cos( radians(:latitude) ) * cos( radians( Latitude ) ) * cos( radians( Longitude ) - radians(:longitude) ) + sin( radians(:latitude) ) * sin( radians( Latitude ) ) ) ) AS distance FROM `mytable` HAVING distance < :radius ORDER BY distance;");
// Assign parameters
$query->bindParam(':latitude',$newLatitude);
$query->bindParam(':longitude',$newLongitude);
$query->bindParam(':radius',$radius);
//Execute query
$query->execute();
$q = $db->query($query);
$q->setFetchMode(PDO::FETCH_ASSOC);
// fetch
while($r = $q->fetch()){
$eLatitude = $r->Latitude;
$eLongitude = $r>Longitude;
$distance = $r->Distance;
}
我更新了上面的 php 代码。这段代码的语法正确吗?还是我的做法完全错误?
最佳答案
PDO::FETCH_ASSOC:返回按列名索引的数组 Manual
while($r = $q->fetch()){
echo $r['Latitude']. "\n"; //Or do what ever instead of echo
echo $r['Longitude']. "\n";
echo $r['Distance']. "\n";
}
ie XML
while($r = $q->fetch()){
$node = $dom->createElement("marker");
$newnode->setAttribute("lat", $r['Latitude']);
$newnode->setAttribute("lng", $r['Longitude']);
$newnode->setAttribute("distance", $r['Distance']);
}
ie JSON
while($r = $q->fetch()){
data[] = $r;
}
关于php - 将 SQL 查询的值存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141063/