我仍然在我的PHP腳本中收到mysql錯誤。PHP中不可理解的MySQL錯誤(表不存在,聯合查詢)
問題的代碼:
$mquery = mysql_query("SELECT m.`id`, m.`name`, NULL AS `type`, NULL AS `code`, 0 AS `cat` FROM `menu` m UNION ALL SELECT l.`id`, l.`name`, l.`type`, l.`code`, l.`cat` FROM `lines` l UNION ALL SELECT s.`id`, s.`name`, s.`site`, s.`site`, s.`cat` FROM `sites` s ORDER BY `name` ASC");
if(!$mquery) { echo mysql_error(); die(); }
while($mdata = mysql_fetch_assoc($mquery)) { ... }
當我把這個查詢到phpMyAdmin的 - 一切都OK,我會得到結果。當我把這個查詢放入MySQL Workbench時 - 一切正常,我會得到結果。
AND NOW:當我使用參數(http://domain/index.php?site=ABC)運行腳本時 - 一切正常。當我運行沒有參數的腳本(http://domain/index.php) - 我得到這個查詢mysql錯誤:「表'test.menu'不存在」。
什麼「test.menu」?! 「測試」在哪裏?我不想要任何「測試」,我的查詢中沒有「測試」。爲什麼它與url中的參數有關?它不是動態生成的查詢。問題在哪裏?
對不起,我的英語
解決,劇本結構:
$mydb = mysql_connect(...);
mysql_select_db(..., $mydb);
mysql_set_charset('utf8', $mydb);
function newMenu($db)
{
$mquery = mysql_query("...", $db);
if(!$mquery) { echo mysql_error(); die(); }
while($mdata = mysql_fetch_assoc($mquery) { ... }
}
myMenu($mydb);
,但我不明白的是:爲什麼沒有「$ DB」工作時的參數「網站」是在網址?
首先mysql_ *擴展名被棄用嘗試使用mysqli_ * – JYoThI
我知道,但它是舊的和非常大的項目,它將是非常困難的重拍它。 – Kenapuc