2017-02-10 43 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