(PHP 5, PHP 7, PHP 8)
mysqli::change_user -- mysqli_change_user — Change l'utilisateur de la connexion spécifiée
Style orienté objet
Style procédural
Change l'utilisateur de la connexion spécifiée par le paramètre link
et change la base de données courante pour celle spécifiée par le paramètre database
.
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é.
mysql
Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().
username
Le nom d'utilisateur MySQL.
password
Le mot de passe MySQL.
database
La base de données à utiliser.
Vous pouvez passer la valeur null
à ce paramètre pour ne changer que l'utilisateur. Dans ce cas, vous pouvez utiliser la fonction mysqli_select_db() pour changer de base de données.
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 Exemple avec mysqli::change_user()
Style orienté objet
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("SET @a:=1");
$mysqli->change_user("my_user", "my_password", "world");
if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("Base de données par défaut : %s\n", $row[0]);
$result->close();
}
if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("La valeur de la variable a est NULL\n");
}
$result->close();
}
$mysqli->close();
?>
Style procédural
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
if (!$link) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link, "SET @a:=1");
mysqli_change_user($link, "my_user", "my_password", "world");
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Base de données par défaut : %s\n", $row[0]);
mysqli_free_result($result);
}
if ($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");
}
mysqli_free_result($result);
}
mysqli_close($link);
?>
Les exemples ci-dessus vont afficher :
Base de données par défaut : world La valeur de la variable a est NULL
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.