[英]Php query returns no rows with varchar
我有一个mysql表,其中用户列是varchar。
这适用于int类型
$result = mysql_query("SELECT name FROM users WHERE id='$id'");
但是,当我尝试匹配varchar时,什么也不会返回。
$result = mysql_query("SELECT name FROM users WHERE user='$username'");
我试图剥离的价值,仍然没有。
有什么建议么?
我通常使用这样的东西。 (加上一些消毒)
$username = strtolower($username);
$result = mysql_query("SELECT name FROM users WHERE LCASE(user)='{$username}'");
无论用户如何键入相同的大小写,都将为您提供用户名。
由于您使用的是=
因此必须完全匹配。 否则,您将使用LIKE
。
我上面提供的代码将返回用户名的完全匹配。 这段代码会将$username
强制全部小写,然后我们可以使用LCASE
对MySQL执行相同的操作。 现在您可以进行完全相同的匹配。
您可能遇到的问题是userName
与UserName
甚至与UsErNaMe
不相同。 确保当您进行完全匹配时,大小写也相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.