mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7, PHP 8)

mysqli::change_user -- mysqli_change_userModifica o usuário para a conexão com o banco de dados especificada

Descrição

Estilo orientado a objetos

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

Estilo procedural

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

Muda o usuário na conexão com o banco de dados especificado e define o banco atual.

Para conseguir mudar usuários com sucesso, os parâmetors username e password fornecidos devem ser válidos e este usuário deve ter permissões suficientes para acessar o banco de dados desejado. Se por qualquer motivo a autorização falhar, a autenticação do usuário atual irá permanecer.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

username

O nome do usuário MySQL.

password

A senha MySQL.

database

O banco de dados a ser designado.

Se desejado, o valor null pode ser passado, resultando somente em mudança de usuário e não selecionando o banco. Para selecionar o banco neste caso, utilize a função mysqli_select_db().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli::change_user()

Estilo orientado a objetos

<?php

/* Conecta ao banco 'test' */
$mysqli = new mysqli("localhost", "meu_usuario", "minha_senha", "teste");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

/* Define uma variável 'a' */
$mysqli->query("SET @a:=1");

/* Redefine e seleciona um novo banco */
$mysqli->change_user("meu_usuario", "minha_senha", "mundo");

if (
$result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("Banco padrão: %s\n", $row[0]);
$result->close();
}

if (
$result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if (
$row[0] === NULL) {
printf("Valor da variável 'a' é NULL\n");
}
$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
/* Conecta ao banco 'teste' */
$link = mysqli_connect("localhost", "meu_usuario", "minha_senha", "teste");

/* verifica a conexão */
if (!$link) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

/* Define a variável 'a' */
mysqli_query($link, "SET @a:=1");

/* redefine tudo e seleciona um novo banco */
mysqli_change_user($link, "meu_usuario", "minha_senha", "mundo");

if (
$result = mysqli_query($link, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Banco padrão: %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("Valor da variável 'a' é NULL\n");
}
mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Banco padrão: mundo
Valor da variável 'a' é NULL

Notas

Nota:

Usar este comando sempre irá fazer com que a conexão atual se comporte como se fosse uma conexão totalmente nova, não importando se a operação foi completada com sucesso. Esta reinicialização inclui realizar uma reversão de dados em quaisquer transações ativas, fechando todas as tabelas temporárias e destravando todas as tabelas travadas.

Veja Também

add a note add a note

User Contributed Notes

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