Intereting Posts
Троянский код, встроенный в мои страницы веб-сайта. В чем смысл этого кода? Печать вложенного массива PHP в виде $ var = value; facebook graph api не работает с 2.2 до 2.3 php-fpm разбился, когда curl или file_get_contents запросили https-url PHP: изменение реферирования с заголовком () как связать несколько параметров с запросом MySQLi Как удалить действие, добавленное через класс Невозможно получить str_replace () для выделения пробелов в строке PHP Предотвратить создание встроенного веб-сайта Как я получаю от привычки процедурного программирования и объектно-ориентированного программирования? создавать звездные шаблоны с PHP для цикла Как получить URI абсолютного изображения с SimpleHTMLDom Лучший способ интернационализации простого PHP-сайта Для очищенных или неустановленных массивов php, собраны ли элементы мусора? несоответствие токена phpmyadmin для длительного простоя

Как проверить mysql db, пользователь является частью группы

Это может быть простой вопрос, но у меня есть страница входа, где я хочу, чтобы пользователи аутентифицировались против LDAP, и это работает нормально.

Я создал базу данных mysql, где я создал таблицу с именем входа пользователя и хотел бы проверить после успешного входа в систему, чтобы проверить в моей БД, что пользователь, пытающийся пройти аутентификацию, является частью группы «Администратор» (определенной в моей таблице базы данных).

Если это допустимо, перенаправите их на url1, а если не перенаправить их на URL2. На этом этапе мне просто нужна помощь с частью запроса SQL, поскольку я не слишком хорошо знаком с ней.

 Localhost
 DB name = imc.directory.tool
 Имя таблицы = tbl_staff
 ------------------------------------------------
 |  ID |  имя пользователя |  группа |
 ------------------------------------------------
 |  1 |  username1 |  Администратор |
 ------------------------------------------------
 |  2 |  username2 |  Гость |
 ------------------------------------------------
 |  3 |  username3 |  Гость |
 ------------------------------------------------

Вы можете использовать следующее внутри любого оператора SQL и API по вашему выбору.

 SELECT ID FROM tbl_staff WHERE username='username1' AND `group`='Administrator' 

или (sidenote: column_x, column_y – имена столбцов):

 SELECT column_x, column_y FROM tbl_staff WHERE username='username1' AND `group`='Administrator' 

Вы также можете сделать SELECT * для выбора всех столбцов, но это часто метод, который многие разработчики SQL не любят использовать.

  • Вот статья на эту тему: Почему SELECT * считается вредным?

Однако вы сказали, что это было для ASP.net, о чем я ничего не знаю.

Sidenote: group – зарезервированное слово MySQL, которое требует особого внимания.

Либо обертывание слова в тиках, либо использование другого имени, такого как «группы», например.

Ниже приведен метод PDO с использованием подготовленных операторов:

 $db = new PDO("mysql:host=localhost;dbname=db_name", $user, $pass); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $username = "username1"; $group = "Administrator"; $query = "SELECT COUNT(*) FROM tbl_staff WHERE username = :username AND `group` = :username"; $statement = $db->prepare($query); $statement->bindValue(':username', $username); $statement->bindValue(':password', $group); $statement->execute(); $count = $statement->fetchColumn(); if ($count === 1) { return TRUE; } else { return FALSE; } 

Рекомендации: