2012-07-11 112 views
1

我想从我的表中获取一些信息,但查询返回空当我打电话这样说:

$varchar_string = mysqli_real_escape_string($link, $_GET['code']); //the code is b5KlL4znM in this scenario 

mysqli_query($link, "SELECT * FROM table WHERE code = $varchar_string"); 

的字符串是字母数字,并且由用户提交的,所以我做了查询之前已经逃脱它。

现在,如果我这样做查询

mysqli_query($link, "SELECT * FROM table WHERE code = 'b5KlL4znM'"); 

它工作正常,但是这不是非常有活力。

当我搜索这个问题时,我没有得到很多结果,而且我没有设法找到那些看似相关的答案。

+1

尝试围绕你的变量在单引号 – 2012-07-11 17:17:54

+0

此外,在未来,你可能想尝试登录SQL字符串是你正在形成,这样你就可以看到这类事情出差错。另外,参数化查询是你的朋友,而且更安全。 – 2012-07-11 17:19:03

+1

这是你能想到的最好的标题? – nickb 2012-07-11 17:23:03

回答

3

您需要在引号中包含变量。

mysqli_query($link, "SELECT * FROM table WHERE code = '$varchar_string'"); 
4

你可能需要在你的字符串周围加引号吗?

mysqli_query($link, "SELECT * FROM table WHERE code = '$varchar_string'"); 
+0

正如我记得我已经这样做,但要再试一次。这可能需要一段时间,似乎主机已关闭。 – Patrick 2012-07-11 17:20:13