[英]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.