2017-07-17 8 views
0

私はまだ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に?

+0

最初にmysql_ *拡張機能は廃止されました。mysqli_ * – JYoThI

+0

を使用しようとしていますが、それは古いもので非常に巨大なプロジェクトです。リメイクするのは非常に難しいでしょう。 – Kenapuc

答えて

0

PHPのmysql設定を確認してください。私はあなたがどこかからコードをコピーしたので、あなたが 'テスト'としてデータベース名を使用していると確信しています。それをデータベースの実際の名前に変更すれば正常に動作します。

mysql_queryの2番目のパラメータは接続変数でなければなりません。

<?php 
$con = mysql_connect("localhost", "root", "mypass") or 
die("Could not connect: " . mysql_error()); 
mysql_select_db("tutorials"); 
$result = mysql_query("select * from tutorials"); 
echo "<h2>Here is a list of the topics:</h2>"; 
while ($row = mysql_fetch_array($result)) { 
    echo $row['name']."<br />"; 
} 
mysql_close($con); 
?> 
+0

"どこかから"何もコピーされず、 "test"という名前のデータベースもありません。 – Kenapuc

+0

PHP mysql接続コードを投稿することができます –

+0

私の "編集"を参考にしてください –

-3

完全なPHPスクリプトを教えてください。 'サイト'パラメータに関連するデータベース設定ですか?

+0

これはコメントです。 –

+0

いいえ、データベースの設定は 'site'パラメータに関連していません。静的です。 – Kenapuc

関連する問題