【发布时间】:2014-01-21 07:08:22
【问题描述】:
在此站点的大量帮助下,我现在有一个查询,它显示了来自多个数据库表的页面,其中 $MyURL 等于页面 URL(例如,MySite/Crazy_Horse 与表 people、字段 URL 中的值 Crazy_Horse 匹配)。
唯一剩下的问题是静态值(MySite2)。我无法在显示页面上回显它。然而它必须工作,因为如果我注释掉这一行 - $MySite2 = $row['MySite2']; - 我收到一条错误消息,提示 $MySite2 尚未定义。但是当我恢复该行时,错误消息消失了,但 echo $MySite2 没有显示任何内容。
谁能看出我做错了什么?
$sql = "SELECT SUM(num) as num FROM (
SELECT 'GZ' AS MySite2, COUNT(Taxon) AS num FROM gz_life WHERE Taxon = :MyURL
UNION ALL
SELECT 'All' AS MySite2, COUNT(Name) AS num FROM gw_geog WHERE Name = :MyURL
UNION ALL
SELECT 'GS' AS MySite2, COUNT(URL) AS num FROM gs WHERE URL = :MyURL
) AS X";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
$stmt->execute();
while ($row = $stmt->fetch())
{
$MySite2 = $row['MySite2'];
$Total = $row['num'];
switch($Total)
{
case 1:
require($BaseINC."/$MyPHP/inc/C/2_Child.php");
break;
case 0:
require_once($BaseINC."/404.php");
break;
default:
require($_SERVER['DOCUMENT_ROOT']."/Dupe.php");
break;
}
}
【问题讨论】:
-
您不能调用
MySite2,因为它不在您的外部SELECT列表中。 -
执行此操作时没有出错?根据to PDO docs 和我的经验,您不能在一个准备好的语句中重复使用
:MyURL3 次,同样this question -
试试php的
var_dump(php.net/var_dump)来帮助调试