为什么我的SQL查询在PHP中不起作用?

时间:2017-02-02 23:37:09

标签: php sql-server google-maps point geography

所以我使用ms sql在地理位置存储纬度和经度,在sql中我用以下方法访问该数据:

  SELECT
  location.Lat AS  lat,
  location.long AS long,
  location
  FROM tableName;

它运作良好,纬度为20,4706622,长度为44,8132969,位置是一些凌乱的六角数。

但是当我在PHP中尝试相同时它不起作用,它是相同的并且由以下原因引起:

location.lat/long

以下是我的php的样子

<?php 
session_start();

include "connect.php";

$query = $handler->query("SELECT location.lat AS lat, street  FROM shops");
$row = $query->fetch(PDO::FETCH_OBJ);
$location[0] = $row->lat;
$location[1] = $row->street;
echo json_encode($location);

如果我将location.lat/long替换为其他任何位置,例如位置,街道,城市或任何其他列,它将起作用。 我知道这取决于location.lat,但我不知道如何格式化它不同。 如果有什么不清楚,请询问。

1 个答案:

答案 0 :(得分:0)

如果我更正了,您可以将字段命名为location.Latlocation.long

将表格的字段名称更改为latlong

然后将您的查询更改为:

SELECT
  Lat AS  lat,
  long AS long,
  location
  FROM tableName;

如果由于某种原因无法更改数据库结构,则另一个选择是创建视图。

据你所知,这个查询有效:

SELECT
  location.Lat AS  lat,
  location.long AS long,
  location
  FROM tableName;

如果您的查询有效,那么您可以通过以下方式创建视图:

create view new_table_name as 
SELECT location.Lat AS  lat, location.long AS long, location FROM tableName;

然后更改您的php脚本以使用新视图,就像它是普通表一样。

Select * from new_table_name

应该让你知道刚刚发生了什么。