2017-02-10 42 views
0

在這裏用PHP有一個問題。php給出的值不同,它提到

我用setcookie()來存儲有人登錄時的值。這個cookie的值是「fred」,它的名字是「name」,而在另一個頁面中我使用cookie我調用$ _cookie ['name' ]並打印出來並顯示「fred」。但問題是當我在查詢中使用cookie變量時。

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

如果我這樣做,$名稱不到位弗雷德,我知道這一點,因爲我取代上查詢$ name值弗雷德和查詢工作!所以很明顯,這是一個將變量作爲乾淨字符串獲取的問題。如果有空格,我嘗試用strlen去掉最後一個字符,我也試過用ltrim(),rtrim()。沒有更多的想法。請幫助!

+0

什麼,當你運行'回聲「選擇發生* FROM名WHERE名稱LIKE' $ name'ORDER BY id「;'?另外,'$ name = $ _COOKIE ['name'];'你爲什麼要做一個沒有通配符的'LIKE'搜索?使用'name ='$ name'' –

+0

同樣的結果。我也試着用不等於和相同的結果。如果我在回聲中運行查詢,我得到了一個錯誤「Resource id#5」 –

+0

當你在'echo $ name'上面顯示時,顯示什麼 – affaz

回答

0

我得到這個錯誤,因爲我在寫這樣的查詢:中

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

代替:

SELECT BLABLA WHERE BLA LIKE 'BLA' ORDER BLA