2017-02-10 1 views
0

Got ein Problem hier mit PHP.php geben Wert anders, dass es erwähnt

Ich habe setcookie() verwendet, um einen Wert zu speichern, wenn sich jemand anmeldet. Der Wert des Cookies ist "fred" und sein Name ist "name" und auf einer anderen Seite verwende ich den Cookie, den ich aufruft $ _cookie ['name' ] und drucken Sie es und erscheint "Fred". Aber das Problem ist, wenn ich die Cookie-Variable für eine Abfrage verwende.

$name = $_cookie['name']; 
mysql_query("SELECT * FROM names WHERE name LIKE '$name' ORDER BY id "); 

, wenn ich dies tun, wird $ name als fred nicht ankommen, ich weiß das, weil ich die $ name Wert auf die Abfrage fred ersetzt und die Abfrage funktioniert! Es gibt also eindeutig ein Problem, die Variable als saubere Zeichenfolge zu erhalten. Ich habe versucht, strlen, um das letzte Zeichen herauszubekommen, wenn es ein Leerzeichen gibt, ich versuchte es auch mit ltrim(), rtrim(). Keine weiteren Ideen. Hilfe bitte!

+0

Was passiert, wenn Sie laufen 'echo„SELECT * FROM Namen WHERE name LIKE ' $ name 'ORDER BY id'; '? Auch, $ name = $ _COOKIE ['name']; 'Warum machst du eine' LIKE' Suche ohne Wildcards? Verwenden Sie 'name = '$ name'' –

+0

Gleiches Ergebnis. Ich habe mich auch mit Gleichgestellten nicht gleich und dem gleichen Ergebnis versucht. Wenn ich die Abfrage in einem Echo ausführen, habe ich einen Fehler "Resource ID # 5" –

+0

was angezeigt wird, wenn Sie $ echo $ Name über – affaz

Antwort

0

ich diesen Fehler war immer, weil ich die Abfrage wie folgt zu schreiben wurde:

SELECT ALL FROM USERS WHERE NAME LIKE "NAME" ORDER BY ID 

statt:

SELECT BLABLA WHERE BLA LIKE 'BLA' ORDER BLA 
Verwandte Themen