Moin!
Hi,
nun mal das Anonyme bei Seite....
Soso... :)
In dieser Zeile funktioniert alles so wie ich will, bei falscher angabe springt DIE an bei richtiger gehts weiter....
$result = mysql_query("SELECT * FROM $table WHERE clientid = test AND pass = test") or die ("SQL-Query fehlerhaft: ".mysql_error());
Ja klar: Wenn $table eine Tabellenbezeichnung enthält, die keiner Tabelle in der Datenbank entspricht, gibts einen SQL-Fehler. Eine sehr unschöne Methode, sowas festzustellen - das nur nebenbei bemerkt. Und noch etwas sei angemerkt: clientid = test <= Da muss test doch ganz sicher in Anführungsstriche, denn ohne Anführungsstriche nimmt MySQL IIRC nur Zahlenwerte entgegen. Oder deine clientid ist numerisch, und da steht auch nicht test, sondern 123 - dann ist natürlich alles ok.
In dieser Zeile geht nur die Fehlermeldung (DIE) nicht, das einzige was ich hier verändert habe, ist die Strings durch Variablen auszutauschen....
$result = mysql_query("SELECT * FROM $table WHERE clientid = '$test' AND pass = '$test'") or die ("SQL-Query fehlerhaft: ".mysql_error());
Typische Methode: Den Query vorher zusammensetzen und in einer Variablen speichern:
$der_query = "SELECT * FROM $table WHERE clientid = '$test' AND pass = '$test'";
$result = mysql_query($der_query) or die ("Fehler bei Query $der_query: ".mysql_error());
Auf diese Weise wird dir angezeigt, was MySQL da so verarbeiten soll, und du siehst, ob das auch Sinn macht - kann ja sein, dass in deinen Variablen nicht escapte Anführungsstriche drin sind, die deinen Query durcheinander bringen.
Und den Query wüßte ich dann gerne - wenn er das die() nicht anspringt, mach vor- oder hinterher eine Ausgabe:
echo "Der Query lautet: $der_query";
Weiter gehts mit mir dann aber erst heute Nacht oder morgen früh.
- Sven Rautenberg
Diese Signatur gilt nur am Freitag.