我正在尝试创建一个与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页面的代码是临时的。我很快就会改变它们,但是现在我需要匹配数据库中用户名的字符,我需要精确的字符匹配。
请帮帮我。
答案 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
(不区分大小写)