(PHP 5, PHP 7, PHP 8)
mysqli::change_user -- mysqli_change_user — Change l'utilisateur de la connexion
Style orienté objet
$username, #[\SensitiveParameter] string $password, ?string $database): boolStyle procédural
$mysql,$username,$password,$databaseTente de se connecter à la base de données spécifiée en utilisant les identifiants fournis.
Contrairement à mysqli::connect(), cette méthode ne déconnectera pas la connexion actuelle si la nouvelle connexion ne peut pas être établie.
Pour que cette fonction réussisse, les paramètres
username et password doivent
être valides et l'utilisateur en question doit avoir les permissions
d'accès à la base de données désirée.
Si pour une raison ou une autre, l'autorisation échoue, l'utilisateur
courant sera conservé.
mysqlSeulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().
usernameLe nom d'utilisateur MySQL.
passwordLe mot de passe MySQL.
database
Le nom de la base de données. Si null ou une chaîne vide est passée,
la connexion au serveur sera ouverte sans base de données par défaut.
Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue,
un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT,
une mysqli_sql_exception est lancée à la place.
Exemple #1 Réinitialisation de la session de connexion
Style orienté objet
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
$mysqli->query("SET @a:=1");
$mysqli->change_user("my_user", "my_password", "world");
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("Base de données par défaut : %s\n", $row[0]);
$result = $mysqli->query("SELECT @a");
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("La valeur de la variable a est NULL\n");
}
?>Style procédural
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
mysqli_query($link, "SET @a:=1");
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("Base de données par défaut : %s\n", $row[0]);
$result = $mysqli_query($link, "SELECT @a")) {
$row = mysqli_fetch_row($result);
if ($row[0] === NULL) {
printf("La valeur de la variable a est NULL\n");
}
?>Les exemples ci-dessus vont afficher :
Base de données par défaut : world La valeur de la variable a est NULL
Exemple #2 Si database est null la connexion est ouverte sans sélectionner de base de données par défaut
Style orienté objet
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
$mysqli->change_user("my_user", "my_password", null);
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("Base de données par défaut : %s\n", $row[0]);Les exemples ci-dessus vont afficher :
Base de données par défaut :
Note:
L'utilisation de cette commande implique toujours que la connexion soit considérée comme neuve, que la fonction réussisse ou non. Un appel à cette fonction annulera donc toutes les transactions actives, fermera les tables temporaires et déverrouillera les tables verrouillées.