SQL-Query fehlerhaft in PHP, phpmyadmin frisst ihn aber
Urza
- php
Hallo.
Habe das Problem, dass mein Code (siehe unten) in phpmyadmin genau das ausspuckt, was ich brauche, nämlich eine Zeile auf einem Feld mit einer Zahl darin.
$sql = "SELECT `group` FROM `admin_users` WHERE name='".$_COOKIE['name']."' LIMIT 1";
$res1 = mysql_query($sql);
$real_group = mysql_result($res1,0,0);
Im Cookie "name" steht eine Zahl von 0 bis 2.
Wenn ich diesen Code allerdings in PHP ausführe, bekomme ich einen Fehler:
[quote]
mysql_result(): supplied argument is not a valid MySQL result resource in ... on line 31
[/quote]
Auf Zeile 31 liegt die Funktion mysql_result.
Hab schon alle Möglichkeiten mit Apostrophen durch, leider ohne Erfolg.
Es ist komisch, da phpmyadmin eigentlich nichts anderes macht als den SQL zu prüfen und dann auszuführen, während das beim reinen Ausführen zu einem Fehler führt, den mir phpmyadmin nicht ausgibt. Heißt, phpmyadmin sagt "der SQL ist korrekt" (und gibt mir sogar das gewünschte Ergebnis aus), während PHP sagt "nein, der Code ist nicht korrekt".
Steh auf dem Schlauch, es ist bestimmt nur eine Kleinigkeit, die ich übersehen habe. Könnt ihr mir bitte bei der Fehlersuche helfen?
Danke
Urza
Hallo Forum,
$sql = "SELECT
group
FROMadmin_users
WHERE name='".$_COOKIE['name']."' LIMIT 1";
$res1 = mysql_query($sql);
$real_group = mysql_result($res1,0,0);
>
> Im Cookie "name" steht eine Zahl von 0 bis 2.
Lass mal nach dem Aufruf mysql\_query den Rückgabewert von mysql\_error ausgeben, dann bekommst du den Fehler aus Sicht von MySQL erlärt.
Außerdem solltest du Variablen von außen immer mit mysql\_real\_escape\_string maskieren lassen, damit dir niemand mit SQL-Injection deine Daten kaputt macht o.ä.
Gruß
Alexander Brock
--
![A](http://alexanderbrock.de/img/pavatar.png)
[VMenü - Ein Klasse in PHP, mit der man beliebig tief verschachtelte (x)HTML-Menüs erstellen kann.](http://alexanderbrock.de/vmenue/)
hi,
Habe das Problem, dass mein Code (siehe unten) in phpmyadmin genau das ausspuckt, was ich brauche, nämlich eine Zeile auf einem Feld mit einer Zahl darin.
$sql = "SELECT
group
FROMadmin_users
WHERE name='".$_COOKIE['name']."' LIMIT 1";
$res1 = mysql_query($sql);
$real_group = mysql_result($res1,0,0);
Dein PMA interpretiert also PHP-Code? Interessant ...
> Steh auf dem Schlauch, es ist bestimmt nur eine Kleinigkeit, die ich übersehen habe. Könnt ihr mir bitte bei der Fehlersuche helfen?
mysql\_error(), Kontrollausgabe des zusammengesetzten Query-Strings.
gruß,
wahsaga
--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }
Habs gefunden.
Es war ganz einfach keine Datenbankverbindung da, hab vergessen zu connecten.
Danke für die Hilfe
Urza
echo $begrüßung;
Es war ganz einfach keine Datenbankverbindung da, hab vergessen zu connecten.
Nicht nur das. Du ignorierst auch noch völlig die von den mysql_*-Funktionen zurückgegebenen Werte, die dich auf Fehler aufmerksam machen wollen. Die Folge ist dann der von dir gesehene PHP-Fehler, weil das vorangegangene mysql_query() einen anderen Wert zurückgeliefert hat als mysql_result() haben möchte.
Es kann auch jetzt mit der vorhandenen Connect-Funktion zu Fehlern kommen. Beispielsweise kann der Verbindungsaufbau nicht funktioniert haben, weil der MySQL-Server gerade kränkelt. In solchen Fällen ist es nicht sinnvoll, stur das Programm weiter durchziehen zu wollen.
Meine Empfehlung: Schau dir die Handbuchseiten der verwendeten Funktionen an und informiere dich, was sie im Gut-Fall zurückgeben und was im Fehlerfall. Reagiere angemessen auf den Fehlerfall.
echo "$verabschiedung $name";