[英]PDO not binding variables
下面的代码返回一个空数组。 运行SQL查询时,它将返回40多个行。 现在被卡在这上面一个多小时了,他正盯着我拉头发。
有一件事我已经试过是手动正好连接上得到变量,然后查询成功 。 基于此,我认为问题在于绑定。
$_GET['ne'] = '53.23514382039281 -1.4177794752807813';
$_GET['sw'] = '53.23265539538397 -1.4263625441284375';
<?php
ini_set("display_errors",1);
require_once('../../includes/database.php');
try {
$stmt = $conn->prepare("SELECT X(Coordinates) AS `latitude`, Y(Coordinates) AS `longitude`
FROM stop
WHERE MBRContains(
GeomFromText( 'LINESTRING(:ne,:sw)' ),
Coordinates)");
$stmt->bindParam('ne', $_GET['ne'], PDO::PARAM_STR, 255);
$stmt->bindParam('sw', $_GET['sw'], PDO::PARAM_STR, 255);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
echo $e->getMessage();
}
echo json_encode($results);
?>
$stmt->bindParam(':ne', $_GET['ne'], PDO::PARAM_STR, 255);
$stmt->bindParam(':sw', $_GET['sw'], PDO::PARAM_STR, 255);
您必须执行该语句才能获得结果
$ stmt-> execute(); 在这里查看更多信息
您不能绑定带引号的字符串'LINESTRING(:ne,:sw)'中的参数。 如果您坚持使用绑定,请尝试执行此操作。
GeomFromText( concat('LINESTRING(',:ne,',',:sw,')') )
顺便说一句,你应该一直得到这个错误。
警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [HY093]:无效的参数编号:绑定变量的数量与令牌的数量不匹配
添加这行
error_reporting(E_ALL | E_STRICT);
后
ini_set("display_errors",1);
<?php $stmt->execute() // missing
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.