在本網站的許多幫助下,我現在有一個查詢顯示來自幾個數據庫表的頁面,其中$ MyURL等於一個頁面URL(例如MySite/Crazy_Horse匹配表格中的值Crazy_Horse,字段URL)。靜態值不顯示(COUNT,UNION ALL查詢)
剩下的唯一問題是靜態值(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'列表中。 – Kermit
執行此操作時,您沒有收到錯誤信息?根據[PDO文檔](http://www.php.net/manual/en/pdo.prepare.php)和我的經驗,你不能在一個準備好的語句中重複使用':MyURL'3次,[這個問題](http://stackoverflow.com/questions/2432084/pdo-parameterized-query-reuse-named-placeholders) –
嘗試使用php的'var_dump'(http://www.php.net/var_dump)來幫助調試 – tr33hous