Php查询不返回varchar行

时间:2014-04-02 19:04:44

标签: php mysql

我有一个mysql表,其中用户列是varchar。

这适用于int类型

$result = mysql_query("SELECT name FROM users WHERE id='$id'");

但是当我尝试匹配varchar时,不会返回任何内容。

$result = mysql_query("SELECT name FROM users WHERE user='$username'");

我试图删除这些值,但仍然没有。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我通常使用这样的东西。 (加上一些消毒)

$username = strtolower($username);
$result = mysql_query("SELECT name FROM users WHERE LCASE(user)='{$username}'");

这将为您提供用户名,无论他们如何通过使案例相同来键入它。

由于您使用=,因此必须完全匹配。否则你会使用LIKE

我上面提供的代码将返回用户名的完全匹配。 此代码将强制$username全部小写,然后我们可以使用LCASE对MySQL执行相同的操作。现在你可以拥有相同的匹配。

您可能遇到的问题是userNameUserNameUsErNaMe不同。确保当你完全匹配时,情况也一样。