MySQL Syntax Fehler
Peter
- datenbank
Hallo.
Ich bekomme folgende Fehler-Meldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE loginname='name' AND loginpw='pw'' at line 1
Ich vermute es liegt an loginpw='pw'' <- 2 '' am Ende.
Aber wo kommen dir her?
Hier der entsprechende Quellcode.
$act=$_GET['act'];
if($p=='login'&&$act=='yes'&&isset($_POST['name'])&&isset($_POST['pw'])){
$name=mysql_real_escape_string(trim($_POST['name']));
$pw=mysql_real_escape_string(trim($_POST['pw']));
$q=mysql_query("SELECT id,acode,name,loginname,loginpw FROM $type WHERE loginname='$name' AND loginpw='$pw'") or die (mysql_error());
Wo liegt da der Fehler?
mfg
Peter
echo $begrüßung;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE loginname='name' AND loginpw='pw'' at line 1
Die Ursache für Syntax-Fehler liegt in den meisten Fällen vor der genannten Stelle.
$q=mysql_query("SELECT id,acode,name,loginname,loginpw FROM $type WHERE loginname='$name' AND loginpw='$pw'") or die (mysql_error());
Bitte schau dir das Statement an, nicht den Code, der das Statement produziert. Sinnvoll ist es dazu, das Statement in einer Variable abzulegen und diese dann zu übergeben, um ihren Inhalt zu Debug-Zwecken ausgeben zu können.
echo "$verabschiedung $name";
Hallo,
> $q=mysql_query("SELECT id,acode,name,loginname,loginpw FROM $type WHERE loginname='$name' AND loginpw='$pw'") or die (mysql_error());
Versuch mal folgendes:
$q = mysql_query("SELECT id, acode, name, loginname, loginpw FROM " . $type . " WHERE loginname = \"" . $name . "\" AND loginpw = \"" . $pw . "\"") or die (mysql_error());
Ich hab die Erfahrung gemacht, das es so besser funktioniert. Noch besser wäre, wie dedlfix schon geschrieben hat, die folgende Konstruktion:
$sql = "SELECT id, acode, name, loginname, loginpw FROM " . $type . " WHERE loginname = \"" . $name . "\" AND loginpw = \"" . $pw . "\"";
$q = mysql_query($sql);
Im Fehlerfall kannst du dir dann das erzeugte SQL-Statement anzeigen lassen, und den Fehler so besser suchen.
Gruß
Stareagle
Im Fehlerfall kannst du dir dann das erzeugte SQL-Statement anzeigen lassen, und den Fehler so besser suchen.
Wie kann ich mir das Statement anzeigen lassen?
mfg
Peter
Wie kann ich mir das Statement anzeigen lassen?
echo $sql;
Oder noch besser, dann wird es nur im Fehlerfall angezeigt:
if(mysql_errno() != 0){
echo $sql;
echo $mysql_error();
exit();
}
Gruß
Stareagle
hi,
Im Fehlerfall kannst du dir dann das erzeugte SQL-Statement anzeigen lassen, und den Fehler so besser suchen.
Wie kann ich mir das Statement anzeigen lassen?
Wie gibt man denn wohl Werte von Variablen aus - per echo beispielsweise ...?
An dieser Stelle bietet es sich aber an, gleich das die dafür zu nutzen, welches ja ebenfalls den ihm übergebenen Parameter ausgibt:
$sql = "...";
$ergebnis = mysql_query($sql) or die(mysql_error()."\nQuery war: #".$sql."#\n");
gruß,
wahsaga
$sql = "...";
$ergebnis = mysql_query($sql) or die(mysql_error()."\nQuery war: #".$sql."#\n");
Danke.
jetzt kommt das:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE loginname = "philz" AND loginpw = "ed0045ef45e9f48ccd680e8443e8b18ed8de15d' at line 1
Query war: #SELECT id, acode, name, loginname, loginpw FROM WHERE loginname = "lol" AND loginpw = "pw"#
hi,
jetzt kommt das:
[ot] Hätte irgend jemand _nicht_ ewartet, dass der Frager jetzt einfach die Kontrollausgabe posten würde, offenbar ohne selbst auch nur ein Stück weit nachzudenken, was sie bedeuten könnte ...? [/ot]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE loginname = "philz" AND loginpw = "ed0045ef45e9f48ccd680e8443e8b18ed8de15d' at line 1
OK, dass es kurz vor dem WHERE sein würde, hatten wir ja bereits festgestellt.
Query war: #SELECT id, acode, name, loginname, loginpw FROM WHERE loginname = "lol" AND loginpw = "pw"#
Und, was fällt dir an dieser Query kurz vor dem WHERE auf?
gruß,
wahsaga
hi
Und, was fällt dir an dieser Query kurz vor dem WHERE auf?
Oh gott bin ich blind -.-".. Danke...
mfg
Peter