mysqli_select_db în PHP

Alege baza de date implicită pentru interogările următoare de pe conexiune.

Sintaxă
mysqli_select_db(mysqli $mysql, string $database): bool

Ce face mysqli_select_db

Efectul este același cu comanda SQL USE nume_baza: tabelele scrise fără prefix sunt căutate în baza aleasă. De obicei baza se dă direct ca al patrulea parametru al lui mysqli_connect; mysqli_select_db este util când aceeași conexiune lucrează cu mai multe baze.

Exemplele de pe această pagină folosesc baza de date magazin, cu tabelul produse (coloanele id INT AUTO_INCREMENT, nume VARCHAR(100) NOT NULL, pret INT și stoc INT) și patru rânduri: Laptop (3200 lei, 5 buc.), Mouse (80 lei, 40 buc.), Monitor (900 lei, 0 buc.) și Tastatură (150 lei, 12 buc.). Comenzile SQL sunt explicate în secțiunea MySQL. Rezultatele au fost scrise pentru MySQL 8, pentru că exemplele au nevoie de un server de baze de date.

Parametri

Parametru Descriere
$mysql Conexiunea.
$database Numele bazei de date.

Ce returnează

true la succes. O bază inexistentă aruncă mysqli_sql_exception (PHP 8.1+).

Exemple

Exemplul 1: Schimbarea bazei de date

Presupunem că utilizatorul ana are drepturi pe toate bazele de date. Altfel, pentru o bază pe care nu are drepturi, mesajul ar fi Access denied for user ..., chiar dacă baza nu există.

<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta");

mysqli_select_db($conn, "magazin");
echo mysqli_fetch_row(mysqli_query($conn, "SELECT DATABASE()"))[0] . "\n";

try {
    mysqli_select_db($conn, "magazin_vechi");
} catch (mysqli_sql_exception $e) {
    echo $e->getMessage();
}

Rezultat (cu un server MySQL și tabelul produse de mai sus)

magazin
Unknown database 'magazin_vechi'

Greșeli frecvente

  • Utilizatorul MySQL nu are drepturi pe baza aleasă. Primești Access denied for user 'ana'@'localhost' to database ...; drepturile se dau cu GRANT.

Comenzi înrudite

  • mysqli_connect: Deschide o conexiune la un server MySQL sau MariaDB și returnează obiectul conexiunii.
  • mysqli_query: Trimite o interogare SQL către baza de date. Pentru SELECT returnează un rezultat din care citești rândurile.