Это может быть простой вопрос, но у меня есть страница входа, где я хочу, чтобы пользователи аутентифицировались против 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 не любят использовать.
Однако вы сказали, что это было для 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; }
Рекомендации: