gpt4 book ai didi

php - 我可以做一个包含几何函数的参数化查询吗?

转载 作者:可可西里 更新时间:2023-11-01 07:04:42 26 4
gpt4 key购买 nike

我有一个像这样的 SQL 查询:

$stmt = $dbh->prepare("INSERT INTO Places (name, latlng)
VALUES (?, GeomFromText('POINT(? ?)'))");
$stmt->bindValue(1, $_POST['name']);
$stmt->bindValue(2, $_POST['lat']);
$stmt->bindValue(3, $_POST['lng']);
$stmt->execute();

我一直收到这个错误:

'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'latlng' cannot be null'

latlng 列的类型是point NOT NULL。由于插入适用于以下内容,为什么会导致为以上内容插入 NULL

"INSERT INTO Places (name, latlng)
VALUES (?, GeomFromText('POINT(".$_POST['lat']." ".$_POST['lng'].")'))"

那么,我的问题是,我可以执行包含几何函数的参数化查询吗?如果是这样,如何?如果不是,为什么?

最佳答案

在您的查询中 POINT(? ?) 只是一个字符串,而不是一个函数。您不能只对字符串的一部分进行参数化,您需要对整个字符串进行参数化:

$stmt = dbh->prepare("INSERT INTO Places (name, latlng) VALUES (?, GeomFromText(?))");
$stmt->bindValue(1, $_POST['name']);
$stmt->bindValue(2, 'POINT('.(float)$_POST['lat'].' '.(float)$_POST['lng'].')');

关于php - 我可以做一个包含几何函数的参数化查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8355000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com