php给出了它所提到的不同的值

php给出了它所提到的不同的值,php,cookies,Php,Cookies,这里有一个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不会以fred

这里有一个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不会以fred的身份到达,我知道这一点,因为我将查询中的$name值替换为fred,查询工作正常!因此,很明显,将变量作为干净字符串存在问题。我试着用strlen去掉最后一个字符,如果有空格,我也试着用ltrim,rtrim。我没有更多的想法。救命啊

我得到这个错误是因为我这样写查询:

SELECT ALL FROM USERS WHERE NAME LIKE "NAME" ORDER BY ID
而不是:

SELECT BLABLA WHERE BLA LIKE 'BLA' ORDER BLA

运行echo SELECT*FROM names时会发生什么情况,其中的名称类似于“$name”ORDER BY id;?另外,$name=$_COOKIE['name'];为什么不使用通配符进行类似的搜索?使用name='$name'得到相同的结果。我也试过用equals not like和相同的结果。如果我在echo中运行查询,我会得到一个错误资源id 5当u echo$name正确显示fred时会显示什么,但它不会像queryAlso$\u cookie不是$\u cookie那样到达。