我需要PHP中的确切字符匹配

时间:2013-11-20 10:39:23

标签: php regex mysqli preg-match character

我正在尝试创建一个与mysql数据库交互的脚本,并允许通过用户名找到某人。但问题是它不是在比较字符。在我的数据库中的含义,用户名是“abcd”,小写。但是当我去

localhost / ABCD或 localhost / Abcd或 localhost / 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;

&GT;

view.php页面的代码是临时的。我很快就会改变它们,但是现在我需要匹配数据库中用户名的字符,我需要精确的字符匹配。

请帮帮我。

1 个答案:

答案 0 :(得分: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(不区分大小写)