Ce face mysqli_options
Opțiuni utile: MYSQLI_OPT_CONNECT_TIMEOUT (secunde de așteptare la conectare), MYSQLI_OPT_READ_TIMEOUT (secunde de așteptare pentru un răspuns), MYSQLI_INIT_COMMAND (comandă SQL rulată imediat după conectare), MYSQLI_OPT_INT_AND_FLOAT_NATIVE (numerele vin ca int și float, nu ca text), MYSQLI_OPT_LOCAL_INFILE (permite LOAD DATA LOCAL).
Opțiunile se setează pe un obiect creat cu mysqli_init(), înainte de mysqli_real_connect. mysqli_set_opt este un alias, cu același efect.
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 |
Obiectul creat cu mysqli_init. |
$option |
Opțiunea, o constantă MYSQLI_OPT_* sau MYSQLI_INIT_COMMAND. |
$value |
Valoarea opțiunii. |
Ce returnează
true la succes, false la eroare.
Exemple
Exemplul 1: Numere native în loc de text
<?php
$conn = mysqli_init();
mysqli_options($conn, MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
mysqli_real_connect($conn, "localhost", "ana", "parola_ta", "magazin");
var_dump(mysqli_fetch_assoc(mysqli_query($conn, "SELECT id, pret FROM produse WHERE id = 2")));
Rezultat (cu un server MySQL și tabelul produse de mai sus)
array(2) {
["id"]=>
int(2)
["pret"]=>
int(80)
}
Exemplul 2: Alias: mysqli_set_opt
Rulează și fără server, pentru că setează doar opțiuni.
<?php
$conn = mysqli_init();
var_dump(mysqli_options($conn, MYSQLI_OPT_CONNECT_TIMEOUT, 5));
var_dump(mysqli_set_opt($conn, MYSQLI_OPT_READ_TIMEOUT, 10));
Rezultat
bool(true)
bool(true)
Greșeli frecvente
- Apelezi
mysqli_optionsdupă conectare. Majoritatea opțiunilor contează doar la conectare, deci nu au efect.
Comenzi înrudite
mysqli_init: Creează un obiect mysqli neconectat, pe care îl configurezi cu mysqli_options înainte de mysqli_real_connect.mysqli_real_connect: Conectează la server un obiect creat cu mysqli_init, folosind opțiunile setate înainte.mysqli_fetch_assoc / mysqli_fetch_all / mysqli_fetch_array: Citește următorul rând dintr-un rezultat, ca tablou cu numele coloanelor drept chei.