2015-03-31 3 views
0

Я пытаюсь сохранить широту и долготу в тузде таблице типов данных POINT, используя следующий код: -PHP Mysqli Вставить точку в колонку

$name = $_POST['name'] 
$lat = $_POST['lat']; 
$long = $_POST['longi']; 
$location = 'POINT('.$lat."".$long.')'; 
$sql = "insert into `metrix` (`name`, `coord`) values ('".$name.", '".$location."')"; 
$result = mysqli_query($con,$sql); 
if (empty($result)) { 
Echo mysqli_error($con);} 

и это дает следующий MySql синтаксической ошибке: -

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'POINT(13,132)')' at line 1

Каков правильный способ сделать это?

спасибо

+0

POINT - это функция, и вам не нужно обертывать одиночной цитатой, она должна быть как '.. $ Location." ' –

+0

Не используйте замену переменных в первую очередь, используйте подготовленный оператор. – Barmar

+0

Из-за этого ваш код подвержен SQL-инъекции. – Barmar

ответ

-1

Удалить отдельную цитату из location, так как POINT является функцией и оставьте одиночную кавычку до и после имени.

$sql = "insert into `metrix` (`name`, `coord`) values ('".$name."', ".$location.")"; 
0

Вы не пропустите ни одного qoute после ".$name.":

$sql = "insert into `metrix` (`name`, `coord`) values ('".$name."', ".$location.")"; 

и удалить одиночные кавычки Arround ".$location." потому что POINT является функцией, а не строка.

И вы должны использовать подготовленные заявления.

+0

Работал !! спасибо :) –

+0

@RajeshR, если он работает, не стесняйтесь принимать и/или повышать свой ответ – Jens

1

Удалить одиночные кавычки, как Point функция

$sql = "insert into `metrix` (`name`, `coord`) values ('".$name."', ".$location.")"; 

Кроме того, я бы порекомендовал вам использовать подготовленное заявление, как ваш нынешний запрос очень склонен к SQL Injection.

+1

Получил его работу ... Спасибо .. :) –

Смежные вопросы