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