Mysql
 sql >> Database >  >> RDS >> Mysql

Come verificare che mysql db se l'utente fa parte di un gruppo

Puoi utilizzare quanto segue all'interno di qualsiasi istruzione SQL e l'API di tua scelta.

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

o (nota a margine:column_x, column_y sono nomi di esempio di colonna):

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

Puoi anche fare SELECT * per selezionare tutte le colonne, ma questo è spesso un metodo che molti sviluppatori SQL non amano usare.

Tuttavia, hai detto che questo era per ASP.net, che è qualcosa di cui non so nulla.

Nota a margine: group è una parola riservata MySQL che richiede un'attenzione particolare.

O racchiudendo la parola tra segni di spunta o usando un altro nome come "gruppi", ad esempio.

Ecco un metodo PDO che utilizza istruzioni preparate:

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

Riferimenti: