Fehler im MySQL Query
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
benchmark
checken
fehler
fehlermeldung
gleiche fehler
haben
inhalt
kleines beispiel
limit
quellen
schlange
spalten
string
syntax
tabelle
variable
variante
verkettung
zeile
-
Hi,
ich weiss nicht wo da drinnen der Fehler liegt. Entweder bin ich daf?r zu m?de, oder aber auch zu bl?d.
$get = "SELECT NICK,
PASSWORD
FROM USER WHERE NICK = ".$nick;
Fehlermeldung:
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 'LIMIT 1' at line 4
Thx 4 Help -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
muh?..
in deiner mysql-fehlermeldung steht etwas mit LIMIT 1... davon ist im beispiel(?) nix zu sehen.
na ja, ich versuchs trotzdem:
$sql = "SELECT nick, password FROM user WHERE nick= '$nick' LIMIT 1"; $res = mysql_query($sql) or die(mysql_error() . "<pre>$sql</pre>"); //usw
f?r die zukunft...
ca 5 zeilen ?ber und unter der vermeidlich betroffenen 'fehler'-quelle posten. macht es einfacher zu helfen. -
sry sollte ohne dem Limit sein, hab das falsch kopiert :(
Ist aber jedenfalls der gleiche Fehler, nur halt ohne Limit.
Geh?rts dann so:
$get = "SELECT NICK,
PASSWORD
FROM USER
WHERE NICK = '$nick'";
?!
Danke hat sich erledigt. War wieder so ein bl?der Fehler von mir...
Beitrag ge?ndert am 22.01.2006 00:30 von silecom -
nimm die punte vor $nick und dahinter weg und wir habens^^
und dazu gibbet von mir eine kleine "einf?hrung" in Verkettungen..
also... einen string kannst du so:
$string = "string";
schreiben oder so
$string = 'string';
der gro?e unterschied bei ' wird der string so ?bersetz wie er ist
der parser erwartet hier keine variablen.
dadurch ist ' schneller als ", denn selbst wenn im " string keine variable ist, der parser sucht danach.
kleines beispiel f?r probiers?chtige:
function benchmark($time = FALSE) { // sorry f?r diese schlange^^ return (($time) ? (float) array_sum(explode(' ',microtime())) - $time : (float) array_sum(explode(' ',microtime()))); } $s = benchmark(); for ($i = 0; $i < 1000; $i++) echo "nichts mit \"<br />"; echo benchmark($s); $e = benchmark(); for ($i = 0; $i < 1000; $i++) echo 'nichts mit \' <br />'; echo benchmark($e);
also im mysql m?ssen strings mit " oder ' gekennzeichnet sein.
demzufolge w?ren diese varianten richtig:
$sql = "SELECT spalte FROM tabelle WHERE spalte = '$s'";
// der string f?ngt mit " an und h?rt mit " auf. wir "steigen"
nirgens aus
$sql = "SELECT spalte FROM tabelle WHERE spalte \"$s\"";
// der string f?ngt mit " an und h?rt mit " auf. wir "steigen"
nirgens aus. maskieren " mit einem \ damit der parser net meckert
$sql = "SELECT spalte FROM tabelle WHERE spalte = '".$sql."'";
//wir steigen nach' aus und verkn?pfen mit dem . um nach der
variable wieder mit . zu verbinden und mit " einzusteigen^^
$sql 'SELECT spalte FROM tabelle WHERE spalte = "'.$s.'"';
// hier m?ssen wir aussteigen und verketten, da sonst nicht der
inhalt der variable dort stehen w?rde sondern $s^^
also ... ich hoffe das was sch?n unverst?ndlich^^
//omg.. alles umsonst^^
Beitrag ge?ndert am 22.01.2006 01:08 von kirschbluete -
nein, nicht umsonst, danke daf?r :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage