Сервер SQL — Почему мой запрос SQL не работает в PHP?

Поэтому я использую ms sql для хранения широты и долготы в географической точке, в sql я получаю эти данные с помощью:

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

И это хорошо работает, lat — 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

Решение

Если я прав, вы назвали свои поля location.Lat а также location.long

Измените имена полей вашей таблицы на lat а также long

Затем измените ваш запрос на:

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

Должен дать вам представление о том, что только что произошло.

0

Другие решения

Других решений пока нет …