繁体   English   中英

PDO不绑定变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM