【发布时间】:2016-10-10 19:19:47
【问题描述】:
在我的网络服务中,bindParams 有问题。这是我的代码:
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(:query))");
$stmt->bindParam(':query', $queryText, PDO::PARAM_STR);
但是:query 变量没有正确适配这段代码。
当我回显$queryText 时,它完美地给出了29.029087,40.990361。但在代码中它不起作用。顺便说一句,当我写29.029087,40.990361 纬度和经度而不是变量:query 时,我的代码运行良好。代码如下:
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(29.029087,40.990361))");
我该如何解决这个问题?
【问题讨论】:
-
分别尝试两个坐标
Point(:lat,:lng) -
bindValue() ...
-
@KyleThomas 没有任何改变
-
@Musa 是的,我认为逗号会给出此错误。但我是网络服务的新手。我无法处理 2 个变量。这是错误解决方案吗?
-
只需将查询拆分为 lat 和 lng
list($lat, $lng) = split(',', $queryText);
标签: php web-services pdo bindparam