pdo中的stègeomfromtext返回错误(php)

3z6pesqy  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(316)

我目前正在为我的android应用程序编写后端服务,由于这不是我的专长,我很困惑为什么会出现这个错误。
其目的是将位置坐标列表从我的应用程序保存到数据库中的几何数据中。起初,我只是简单地使用mysql\u query与数据库进行通信,但后来我了解了“sql注入”,所以我将所有代码转换为使用pdo。
以下是我的mysql\u查询代码:

$submitRoute = mysql_query("INSERT INTO route(id, route) VALUES('$id', ST_GeomFromText('LINESTRING($route)'))");

在这一点上,我成功地发送并获取和显示我发送的路由。但是当我把它改成pdo风格时,除了在这个查询中我收到了“httperror500”之外,其他一切都正常。
以下是我的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\u 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个结果是错误异常捕获。谁能告诉我哪里做错了吗?谢谢您

e7arh2l6

e7arh2l61#

我就是这么想的:

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

相关问题