2012-02-28 85 views
0

此行:$quey1="select * from clients WHERE USER == $current_user->user_login;";MYSQL PHP凡查询错误

它返回一个未知的错误。我的代码中必须有一个简单的语法错误,但我似乎无法弄清楚。 BTW $current_user->user_login;返回用户,例如admin

任何想法这里有什么问题吗?我真的很新(第一次触摸php和mysql)

谢谢你的帮助!

回答

4
$quey1 = "SELECT * FROM clients WHERE USER = '" . $current_user->user_login . "'" 

您应该将这些也照顾:

  • 逃逸
  • 准备好的发言
  • PDO
+0

临时nks :)。这很好用!你能解释一下“。”吗?是给?他们的意思是什么? – cmplieger 2012-02-28 19:39:20

+0

它们表示字符串concination,但主要问题是缺少单个qoutes和错误的运算符(==)。 – 2012-02-28 19:40:27

0

你需要在引号包裹current_user->user_login。否则MySQL认为它是一个列。错误是没有名为“admin”的列。

1

你不需要在MySQL中有一个double equals运算符。任何字符串比较都需要引号。

$quey1 = "select * from clients WHERE USER = '{$current_user->user_login}'"; 
2

PHP变量可以在SQL查询被用作单引号为字符串(所以$something字面解释为$something,不是一个变量)处理(用于提供双引号,它们的值被简单地取代的查询的时间,但是无法使用变量操作符,最好的办法是用一个变量替换它,并且查询中的分号不需要,因为它被解释为一列,==可以替换为=当您提取数据时,未设置数据:

$user = $current_user->user_login; 
$quey1 = "select * from clients WHERE USER == $user";