(PHP 5, PHP 7, PHP 8)
mysqli::change_user -- mysqli_change_user — Ändert den Benutzer der angegebenen Datenbankverbindung
Objektorientierter Stil
Prozeduraler Stil
Ändert den Benutzer der angegebenen Datenbankverbindung und legt die aktuelle Datenbank fest.
Für einen erfolgreichen Benutzerwechsel müssen gültige Werte für die Parameter username
und password
angegeben werden und der Benutzer muss über ausreichende Berechtigungen für den Zugriff auf die gewünschte Datenbank verfügen. Wenn die Autorisierung aus irgendeinem Grund fehlschlägt, bleibt die aktuelle Benutzerauthentifizierung unverändert.
mysql
Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.
username
Der MySQL-Benutzername
password
Das MySQL-Passwort
database
Die Datenbank, zu der gewechselt werden soll
Falls gewünscht, kann der Wert null
übergeben werden, was dazu führt, dass nur der Benutzer gewechselt und keine Datenbank ausgewählt wird. Um in diesem Fall eine Datenbank auszuwählen, muss die Funktion mysqli_select_db() verwendet werden.
If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR
) and the requested operation fails, a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT
, a mysqli_sql_exception is thrown instead.
Beispiel #1 mysqli::change_user()-Beispiel
Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %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("Standard-Datenbank: %s\n", $row[0]);
$result->close();
}
if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("Der Wert der Variable a ist NULL\n");
}
$result->close();
}
$mysqli->close();
?>
Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
if (!$link) {
printf("Verbindung fehlgeschlagen: %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("Standard-Datenbank: %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("Der Wert der Variable a ist NULL\n");
}
mysqli_free_result($result);
}
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
Standard-Datenbank: world Der Wert der Variable a ist NULL
Hinweis:
Wenn dieser Befehl verwendet wird, verhält sich die aktuelle Datenbankverbindung immer so, als ob es sich um eine völlig neue Datenbankverbindung handelt, unabhängig davon, ob der Vorgang erfolgreich abgeschlossen wurde. Mit diesem Zurücksetzen werden auch alle aktiven Transaktionen zurückgesetzt, alle temporären Tabellen geschlossen und alle gesperrten Tabellen entsperrt.