我试图使用以下代码将经度和纬度存储在数据类型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)')附近使用正确的语法
这样做的正确方法是什么?
谢谢
答案 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.")";