简体   繁体   English

PHP PDO SQL错误:带有消息'SQLSTATE [HY093]的未捕获异常'PDOException':参数号无效

[英]PHP PDO SQL error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number

I can't see what is wrong in this sql. 我看不出这个sql有什么问题。 The simpliest sql without Haversine formula works perfect. 没有Haversine公式的最简单的sql工作完美。 So I mean should be something aboutthe sql or statments. 所以我的意思是应该是关于sql或statments的东西。 I can't see it. 我看不出来。 Some idea? 有些想法? Thanks, 谢谢,

<?php
require_once "connectPDO.php";

// Get parameters from URL
$lat = 55; //$_GET["lat"];
$lng = 3; //$_GET["lng"];
$radius = 18; //$_GET["radius"];

// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);

//$query = $db->prepare("SELECT id, coursename, lat, lng FROM wp_courses");
$query = $db->prepare("SELECT coursename, lat, lng, 
( 3959 * acos( cos( radians(:latitude) ) * cos( radians( lat ) ) 
* cos( radians( lng ) - radians(:longitude) ) + sin( radians(:latitude) )
* sin( radians( lat ) ) ) ) AS distance FROM wp_courses
HAVING distance < :radius ORDER BY distance LIMIT 0 , 20");
$query->bindParam(':latitude', $lat, PDO::PARAM_STR);
$query->bindParam(':longitude', $lng, PDO::PARAM_STR);
$query->bindParam(':radius', $radius, PDO::PARAM_STR);
$query->execute();

header("Content-type: text/xml");
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
    $node = $dom->createElement("marker");
    $newnode = $parnode->appendChild($node);
    $newnode->setAttribute("name", $row['coursename']);
    $newnode->setAttribute("lat", $row['lat']);
    $newnode->setAttribute("lng", $row['lng']);
    $newnode->setAttribute("distance", $row['distance']);
}
echo $dom->saveXML();
?>

You cannot reuse the same parameter name in your query, but it is simple to just change them a little like this 您不能在查询中重复使用相同的参数名称,但只需更改它们即可

$query = $db->prepare("SELECT coursename, lat, lng, 
( 3959 * acos( cos( radians(:latitude1) ) * cos( radians( lat ) ) 
* cos( radians( lng ) - radians(:longitude) ) + sin( radians(:latitude2) )
* sin( radians( lat ) ) ) ) AS distance 
FROM wp_courses
HAVING distance < :radius ORDER BY distance LIMIT 0 , 20");

$query->bindParam(':latitude1', $lat, PDO::PARAM_STR);
$query->bindParam(':latitude2', $lat, PDO::PARAM_STR);
$query->bindParam(':longitude', $lng, PDO::PARAM_STR);
$query->bindParam(':radius', $radius, PDO::PARAM_STR);
$query->execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 PHP致命错误:消息为&#39;SQLSTATE [HY093]的未捕获异常&#39;PDOException&#39;:无效的参数编号: - PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: 致命错误:消息中出现“ SQLSTATE [HY093]:无效的参数编号:未定义参数”的未捕获异常“ PDOException” - Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in 致命错误:带有消息&#39;SQLSTATE [HY093]的未捕获异常&#39;PDOException&#39;:参数号无效:没有参数被绑定 - Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound 消息“ SQLSTATE [HY093]”的异常“ PDOException”:参数号无效 - exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number 消息为&#39;SQLSTATE [HY093]:未捕获的异常&#39;PDOException&#39;:无效的参数号:未定义参数&#39; - Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' 消息为“ SQLSTATE [HY093]:参数号无效”的未捕获异常“ PDOException” - Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number' 致命错误:未捕获的异常 &#39;PDOException&#39; 带有消息 &#39;SQLSTATE[HY093]:参数无效 - Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter 消息“ SQLSTATE [HY093]”的“ PDOException”:无效的参数号: - 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: PHP PDOException:“SQLSTATE[HY093]:参数号无效” - PHP PDOException: "SQLSTATE[HY093]: Invalid parameter number" 绑定参数错误:致命错误:未捕获的 PDOException:SQLSTATE[HY093]:无效的参数号:未定义参数 - Binding parameters error:Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in
相关标签
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM