Ich bekomme immer noch mysql Fehler in meinem PHP-Skript.Unverständliche MySQL-Fehler in PHP (Tabelle existiert nicht, Gewerkschaftsabfrage)
Problematische Code:
$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)) { ... }
Wenn ich diese Abfrage in phpMyAdmin setzen - alles ist in Ordnung, werde ich Ergebnis. Wenn ich diese Abfrage in die MySQL Workbench lege - alles ist OK, bekomme ich das Ergebnis.
UND JETZT: Wenn ich Skript mit Parameter (http://domain/index.php?site=ABC) ausführen - alles ist in Ordnung. Wenn ich Skript ohne Parameter (http://domain/index.php) ausführen - bekomme ich mysql Fehler bei dieser Abfrage: "Tabelle 'test.menu' existiert nicht".
Was "test.menu" ?! Wo ist "Test"? Ich möchte keinen "Test", ich habe keinen "Test" in meiner Abfrage. Und warum ist es auf Parameter in URL bezogen? Es ist keine dynamisch generierte Abfrage. Wo ist das Problem?
Sorry für mein Englisch
gelöst, Skript Struktur:
$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);
Aber was ich nicht verstehe, ist: Warum es ohne "$ db" arbeiten, ist, wenn der Parameter 'Standort' ist in URL?
Zuerst mysql_ * Erweiterung ist veraltet versuchen, mysqli_ * – JYoThI
zu verwenden Ich weiß, aber es ist alt und sehr großes Projekt, es wird sehr schwierig sein, es neu zu machen. – Kenapuc