php - 将 SQL 查询的值存储在变量中

标签 php mysql sql pdo

我有一个 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/

相关文章:

sql - 用于两次更新和搜索查询的高效 SQL 查询

php - 上传的文件在您的服务器上保留多长时间?

PHP MySQL 多个查询合而为一

php - 选择字符串中的所有字符直到特定字符 MySQL

php - 使用php调用数据库中的图像

php - SQL UPDATE 查询因 LIMIT 1 而失败,但适用于 LIMIT 2

php - 改变 symfony 中的数据库( Doctrine )

Python CSV 上传错误处理程序

Mysql 将整数转换为日期

PHP MySQLi fatal error : Call to a member function fetch_array() on a non-object in