2013-11-20 5 views
0

Я пытаюсь создать скрипт, который взаимодействует с базой данных mysql и позволяет найти кого-то по имени пользователя. Но проблема в том, что это не сравнение символов. Значения в моей базе данных, имя пользователя - «abcd», в нижнем регистре. Но когда я перехожу наМне нужно точное совпадение символов в PHP

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; 

кода?>

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 (case insenstive)

+0

Thanx, помогая мне ...: D – user2947999

Смежные вопросы