2012-10-08 47 views
0

请帮我我怎样才能从MySQL中 我的SQL查询具有可变检索数据..我的PHP代码是php mysql通过变量搜索?

$status=$_GET['status']; 
$query="SELECT * FROM students WHERE status='$status' "; 

当我运行查询的MySQL产生

unknown column 'Lead' 

,其中铅是$状态的值。我尝试了 \'$ status \','{$ status}',但是同样的错误。 请帮我我从昨天开始工作,但没有找到解决方案。 我试过mysql_real_escape_string()但是同样的错误..可能是我用它错误的语法。

$query="SELECT * FROM students WHERE status=".mysql_real_escape_string($status); 

在此先感谢....

+1

如果你echo($ query)你看到了什么? – davesnitty

+3

'$ query =“SELECT * FROM students WHERE \'status \'='”。 mysql_real_escape_string($状态)。 “'”;' – NullUserException

+0

请记住:http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php(我建议一般占位符,以避免担心引号 - 我很懒。) – 2012-10-08 21:05:30

回答

1
$status=$_GET['status']; 
$query="SELECT * FROM students WHERE status='".$status."'"; 

和逃避是个好主意,但我认为函数mysql_escape_string已被弃用,它的用法是气馁,你应该总是使用mysql_real_escape_string

0

恐怕 '状态' 是SQL保留字:看http://drupal.org/node/141051

尝试:

$状态= mysql_real_escape_string($状态)

$ query =“SELECT * FROM`students` WHERE`status` ='$ status'”;