sql >> Database >  >> RDS >> Mysql

Hoe te controleren of mysql db is dat de gebruiker deel uitmaakt van een groep

U kunt het volgende gebruiken in elke SQL-instructie en de API van uw keuze.

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

of (sidenote:column_x, column_y zijn kolomvoorbeeldnamen):

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

Je kunt ook SELECT * . doen om alle kolommen te selecteren, maar dat is vaak een methode die veel SQL-ontwikkelaars niet graag gebruiken.

U zei echter dat dit voor ASP.net was, iets waar ik niets van af weet.

Sidenote: group is een MySQL gereserveerd woord wat speciale aandacht vereist.

Ofwel door het woord tussen vinkjes te plaatsen, of door een andere naam te gebruiken, zoals bijvoorbeeld "groepen".

Hier is een PDO-methode die voorbereide verklaringen gebruikt:

$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;   
}

Referenties:




  1. Kan microsoft.sqlserver.batchparser.dll niet vinden

  2. CREATE FUNCTION-fout Deze functie heeft geen DETERMINISTIC, NO SQL of LEES SQL DATA

  3. Inefficiënte SQL-query

  4. Rollen en rolattributen beheren in PostgreSQL