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

为什么我的SQL查询在PHP中不起作用?,php,sql-server,google-maps,point,geography,Php,Sql Server,Google Maps,Point,Geography,因此,我使用ms sql在地理点中存储纬度和经度,在sql中,我通过以下方式访问该数据: SELECT location.Lat AS lat, location.long AS long, location FROM tableName; 它工作得很好,lat是204706622,长度是448132969,位置是一些混乱的六边形数字 但当我在PHP中尝试相同的方法时,它不起作用,它是相同的,是由以下原因引起的: location.lat/long 下面是我的php的样

因此,我使用ms sql在地理点中存储纬度和经度,在sql中,我通过以下方式访问该数据:

  SELECT
  location.Lat AS  lat,
  location.long AS long,
  location
  FROM tableName;
它工作得很好,lat是204706622,长度是448132969,位置是一些混乱的六边形数字

但当我在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
location.long

将表的字段名更改为
lat
long

然后将查询更改为:

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

另一个选项是,如果由于某种原因无法更改db结构,则创建一个视图

根据您的说法,此查询有效:

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

应该会让您知道刚才发生了什么。

您能重命名字段并删除
位置吗。
Sql会识别这一点,因为您想使用位置表中的字段
lat
。位置是一些十六进制数,location.lat会将其转换为我需要的数字吗?您想让我重命名哪些字段?我还想知道字段
street
是从哪里来的。我看起来像是你使用了不止一张桌子,或者你只是神奇地将街道添加到了你的桌子上。可以添加所有必需的信息(您正在使用的表)吗?no location.lat只是sql中位置的一些派生数据,它不是新的列或表,而是来自同一个表。当您向表中添加SET@g=geography::Point(47.65100,-122.34900,4326)时,也可以检查一下这一点,它会将位置字段转换为如下内容:0xE6100000010CD7A3703D0AD728C09A99999999B94340,可以将location.lat转换为47.65100。不,我没有命名columnlocation.lat和location.long,列的名称仅为location和location,您需要键入location.lat和location.long以从位置提取数据。lat只是sql中位置的一些派生数据,它不是新的列或表,而是来自同一个表。当您将SET@g=geography::Point(47.65100,-122.34900,4326)添加到表中时,它会将位置字段转换为如下内容:0xe6100000010cd7a3703d0ad728c0999999b94340,可以使用location.lat将其转换为47.65100。然后位置是一个microsoft sql server
函数,php不知道。试试我的第二个选择。创建一个视图,并在php脚本中将该视图用作表