私はまだPHPスクリプトでmysqlエラーが発生しています。PHPの理解できないMySQLエラー(テーブルは存在しません、ユニオンクエリ)
問題のコードは:私はphpMyAdminににこのクエリ入れ
$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)) { ... }
- すべてはOKですが、私は結果を取得します。このクエリをMySQL Workbenchに入れると、すべてOKですが、結果は得られます。
AND NOW:パラメータ(http://domain/index.php?site=ABC)でスクリプトを実行すると、すべてOKです。パラメータなしでスクリプトを実行すると(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);
しかし、私は理解していないことである:パラメータ「サイト」であるのに、なぜそれが「$デシベル」なしで働いている私の英語
解決、スクリプトの構造のため申し訳ありません
URLに?
最初にmysql_ *拡張機能は廃止されました。mysqli_ * – JYoThI
を使用しようとしていますが、それは古いもので非常に巨大なプロジェクトです。リメイクするのは非常に難しいでしょう。 – Kenapuc