(PHP 5, PHP 7, PHP 8)
mysqli::change_user -- mysqli_change_user — Cambia el usuario de la conexión de bases de datos especificada
Estilo orientado a objetos
Estilo por procedimientos
Cambia el usuario de la conexión de base de datos especificada y establece la base de datos actual.
Para realizar con éxito el cambio de usuarios, un username
y
password
válidos deben ser indicados y ese usuario debe tener
suficientes permisos para acceder a la base de datos deseada. Si por cualquier razón la autorización
falla, se mantendrá la autenticación de usuario existente.
link
Sólo estilo por procediminetos: Un identificador de enlace devuelto por mysqli_connect() o mysqli_init()
user
Nombre de usuario de MySQL.
password
Contraseña de MySQL.
database
La base de datos a la que quiero cambiar.
Si se desea, se puede parar el valor null
de modo que solo cambiará
el usuario y no se seleccionará una base de datos. Para seleccionar una
base de datos en este caso, utilice la función mysqli_select_db().
Nota:
El uso de este comando siempre causará que la conexión a la base de datos actual se comporte como una conexión completamente nueva, independientemente de si la operación se ha completado con éxito. Este reinicio incluye la realización de un "rollback" a cualquier transacción activa, cerrando todas las tablas temporales, y desbloqueando todas las tablas bloqueadas.
Ejemplo #1 Ejemplo del método mysqli::change_user()
Estilo orientado a objetos
<?php
/* connect database test */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "test");
/* check connection */
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
/* Set Variable a */
$mysqli->query("SET @a:=1");
/* reiniciando todo, y realizando una nueva conexión a base de datos */
$mysqli->change_user("my_user", "my_password", "world");
if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("Base de datos predeterminada: %s\n", $row[0]);
$result->close();
}
if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("Value of variable a is NULL\n");
}
$result->close();
}
/* close connection */
$mysqli->close();
?>
Estilo por procedimientos
<?php
/* connect database test */
$link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "test");
/* check connection */
if (!$link) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
/* Set Variable a */
mysqli_query($link, "SET @a:=1");
/* reinciando todo y realizando una nueva conexión a base de datos. */
mysqli_change_user($link, "my_user", "my_password", "world");
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Default database: %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("Value of variable a is NULL\n");
}
mysqli_free_result($result);
}
/* Cerrar conexión */
mysqli_close($link);
?>
El resultado de los ejemplos sería:
Default database: world Value of variable a is NULL