mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7, PHP 8)

mysqli::change_user -- mysqli_change_userÄndert den Benutzer der angegebenen Datenbankverbindung

Beschreibung

Objektorientierter Stil

public mysqli::change_user(string $username, string $password, ?string $database): bool

Prozeduraler Stil

mysqli_change_user(
    mysqli $mysql,
    string $username,
    string $password,
    ?string $database
): bool

Ä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.

Parameter-Liste

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.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Fehler/Exceptions

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.

Beispiele

Beispiel #1 mysqli::change_user()-Beispiel

Objektorientierter Stil

<?php

/* Verbindung zur Datenbank test aufbauen */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}

/* Variable a setzen */
$mysqli->query("SET @a:=1");

/* alles zurücksetzen und eine neue Datenbank auswählen */
$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();
}

/* Verbindung schließen */
$mysqli->close();
?>

Prozeduraler Stil

<?php
/* Verbindung zur Datenbank test aufbauen */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Verbindung überprüfen */
if (!$link) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}

/* Variable a setzen */
mysqli_query($link, "SET @a:=1");

/* alles zurücksetzen und eine neue Datenbank auswählen */
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);
}

/* Verbindung schließen */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Standard-Datenbank: world
Der Wert der Variable a ist NULL

Anmerkungen

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.

Siehe auch

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top