PHP Mysqli将POINT插入列

时间:2015-03-31 07:17:24

标签: mysql insert point

我试图使用以下代码将经度和纬度存储在数据类型POINT的mysql表中: -

$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语法错误: -

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行'POINT(13,132)')附近使用正确的语法

这样做的正确方法是什么?

谢谢

3 个答案:

答案 0 :(得分:1)

删除单引号,因为Point是一个函数

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

另外我建议你使用Prepared语句,因为你现在的查询很容易出现SQL注入。

答案 1 :(得分:0)

您在".$name."之后错过了单引号:

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

并删除".$location."周围的单引号,因为POINT是一个函数而不是字符串。

你应该使用准备好的陈述。

答案 2 :(得分:-1)

location删除单引号,因为POINT是函数,并在名称前后放置单引号。

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