Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PDO中的ST_GeomFromText返回错误(php)_Php_Mysql_Pdo_Sqlgeometry - Fatal编程技术网

PDO中的ST_GeomFromText返回错误(php)

PDO中的ST_GeomFromText返回错误(php),php,mysql,pdo,sqlgeometry,Php,Mysql,Pdo,Sqlgeometry,我目前正在为我的android应用程序编写后端服务,因为这不是我的专长,我不明白为什么会出现这个错误 其目的是将位置坐标列表从我的应用程序保存到数据库中的几何体数据中。起初,我只是简单地使用mysql_query与数据库进行通信,但后来我了解了“sql注入”,所以我将所有代码转换为使用PDO 以下是我的mysql\u查询代码: $submitRoute = mysql_query("INSERT INTO route(id, route) VALUES('$id', ST_GeomFromTex

我目前正在为我的android应用程序编写后端服务,因为这不是我的专长,我不明白为什么会出现这个错误

其目的是将位置坐标列表从我的应用程序保存到数据库中的几何体数据中。起初,我只是简单地使用mysql_query与数据库进行通信,但后来我了解了“sql注入”,所以我将所有代码转换为使用PDO

以下是我的mysql\u查询代码:

$submitRoute = mysql_query("INSERT INTO route(id, route) VALUES('$id', ST_GeomFromText('LINESTRING($route)'))");
此时,我成功地发送、获取和显示了我发送的路由。但当我将其更改为PDO样式时,除了在这个查询中收到“http错误500”之外,其他一切都可以正常工作

以下是我的PDO风格代码:

$submitRoute = $conn->prepare("INSERT INTO route(id, route) VALUES(:id, :route");
$result = $submitRoute->execute(array(
    ':id'       => $_POST['id'],
    ':route'    => ST_GeomFromText('LINESTRING($_POST['route'])'))
));
我也尝试过:

$submitRoute = $conn->prepare("INSERT INTO route(id, route) VALUES(:id, :route");
$result = $submitRoute->execute(array(
    ':id'       => $_POST['id'],
    ':route'    => ST_GeomFromText('LINESTRING(' . $_POST['route'] . ')'))
));
这是因为我认为ST_GeomFromText可能只在查询字符串中起作用:

$submitRoute = $conn->prepare("INSERT INTO route(id, route) VALUES(:id, ST_GeomFromText('LINESTRING(:route)'))");
$result = $submitRoute->execute(array(
    ':id'       => $_POST['id'],
    ':route'    => $_POST['route']
));

但是,最后2个将以错误异常捕获结束。谁能告诉我哪里做错了?谢谢

这就是我的工作原理:

    $query = "INSERT INTO geo (`id`, `gps_coordinates`) VALUES (:id, ST_GeomFromText(:point))";
    $values = [
        ':id' => 5,
        ':point' => 'POINT(' . $lat . ' ' . $lng . ')'
    ];