2013-11-20 48 views
0

我想製作一個腳本,與mysql數據庫進行交互,並允許通過用戶名查找某人。但問題是它沒有比較字符。在我的數據庫中,用戶名是「abcd」,小寫。但是當我去我需要在PHP中的確切字符匹配

本地主機/ ABCD或 localhost/Abcd或 本地主機/ ABCD或任何大寫或小寫,它顯示我相同的結果。我想要不同的情況下有不同的結果。我不知道該用什麼。我搜索了很多,發現了preg_match函數,但不知道如何使用。我對這場比賽從數據庫中創建的功能,

function CheckPnP($var){ 
    $db = new mysqli ('localhost', 'root', '', 'database'); 

    if($var){ 
if($result = $db->query("SELECT * FROM `view` WHERE `username` = '$var'")){ 
      if($result->num_rows){ 
       $rows = $result->fetch_assoc();  
       $_GET['username'] = $rows['username']; 
       $_GET['view'] = $rows['page']; 
       include $_SERVER['DOCUMENT_ROOT'].'/core/view.php'; 
       return true; 
      }  
     } 
    }  
} 

和我view.php頁面代碼

<?php 
@$view = $_GET['view']; 
@$username = $_GET['username']; 

if($view == 'profile'){ 
    echo 'This is profile page.'; 

    } 
else if ($view == 'page'){ 
    echo 'This is page.'; 
    } 
else if ($view){ 
    header('Location: /'); 
    } 
else if (empty($view)){ 
    echo 'this is view page123. '; 
} 

echo '<br>'.$username; 

?>

view.php頁面的代碼是暫時的。我會盡快更改它們,但現在我需要匹配來自數據庫的用戶名字符,並且我需要精確的字符匹配。

請幫幫我。

+1

所以他的問題是你的MySQL查詢不區分大小寫? 您可能會在這裏找到您的答案: http://stackoverflow.com/questions/7857669/mysql-case-sensitive-query – Matthew

+0

謝謝,它幫助了我,但我想問是否有任何其他方法,我可以使用在PHP中匹配字符? – user2947999

+0

你想在哪裏進行PHP比較? – Matthew

回答

0

其實我只是發現了這幾個星期前:

SELECT * FROM `your_table` WHERE BINARY `your_column` = 'VaLue'; 
SELECT * FROM `your_table` WHERE BINARY `your_column` = 'value'; 
SELECT * FROM `your_table` WHERE BINARY `your_column` = 'vaLue'; 

這將取決於您的查詢返回不同的結果。

我建議你做上述而不是PHP。

關於第二個問題:

有一噸的事情可以做,在PHP中的字符匹配。 strcmp(區分大小寫),===,==,strcasecmp(不區分大小寫)

+0

Thanx中的字符串,幫助我解決......:D – user2947999

相關問題