Ce face mysqli_init
Unele setări trebuie făcute înainte de conectare: timpul maxim de conectare, certificatele SSL, comenzi de rulat la conectare. Pentru ele, creezi obiectul cu mysqli_init(), îl configurezi cu mysqli_options sau mysqli_ssl_set și abia apoi te conectezi cu mysqli_real_connect.
Este echivalentul lui new mysqli() fără parametri.
Ce returnează
Un obiect mysqli neconectat.
Exemple
Exemplul 1: Obiect creat, încă neconectat
Acest exemplu rulează și fără server: doar creează obiectul și setează opțiuni.
<?php
$conn = mysqli_init();
var_dump($conn instanceof mysqli);
var_dump(mysqli_options($conn, MYSQLI_OPT_CONNECT_TIMEOUT, 5));
try {
mysqli_query($conn, "SELECT 1");
} catch (Error $e) {
echo $e->getMessage();
}
Rezultat
bool(true)
bool(true)
mysqli object is not fully initialized
Exemplul 2: Conectare în trei pași
<?php
$conn = mysqli_init();
mysqli_options($conn, MYSQLI_OPT_CONNECT_TIMEOUT, 3);
mysqli_options($conn, MYSQLI_INIT_COMMAND, "SET time_zone = '+03:00'");
mysqli_real_connect($conn, "localhost", "ana", "parola_ta", "magazin");
echo mysqli_fetch_column(mysqli_query($conn, "SELECT @@session.time_zone"));
Rezultat (cu un server MySQL și tabelul produse de mai sus)
+03:00
Greșeli frecvente
- Folosești obiectul înainte de
mysqli_real_connect. Primești eroareamysqli object is not fully initialized.
Comenzi înrudite
mysqli_options: Setează o opțiune a conexiunii, înainte de conectare: timp maxim, comandă inițială, numere native etc.mysqli_real_connect: Conectează la server un obiect creat cu mysqli_init, folosind opțiunile setate înainte.mysqli_ssl_set: Setează certificatele pentru o conexiune MySQL criptată (SSL/TLS), înainte de conectare.mysqli_connect: Deschide o conexiune la un server MySQL sau MariaDB și returnează obiectul conexiunii.