>(PHP 5, PHP 7, PHP 8)
mysqli::change_user -- mysqli_change_user — Change l'utilisateur de la connexion spécifiée
Description
Style orienté objet
public
mysqli::change_user(string
$username, string
$password, ?string
$database): bool
mysqli_change_user(
mysqli
$mysql,
string
$username,
string
$password,
?string
$database): bool
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é.
Liste de paramètres
-
mysql
-
Seulement en style procédural : Un objet mysqli
retourné par la fonction mysqli_connect() ou par la
fonction 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.
Valeurs de retour
Cette fonction retourne true en cas de succès ou false si une erreur survient.
Erreurs / Exceptions
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.
Exemples
Exemple #1 Exemple avec mysqli::change_user()
Style orienté objet
<?php
/* Connexion à la base de données test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* Définition de la variable "a" */
$mysqli->query("SET @a:=1");
/* réinitialise tout et sélectionne une nouvelle base de données */
$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();
}
/* Fermeture de la connexion */
$mysqli->close();
?>
Style procédural
<?php
/* Connexion à la base de données test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
/* Vérification de la connexion */
if (!$link) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* Définition de la variable "a" */
mysqli_query($link, "SET @a:=1");
/* réinitialise tout et sélectionne une nouvelle base de données */
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);
}
/* Fermeture de la connexion */
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
Notes
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.
Voir aussi