mysqli_init în PHP

Creează un obiect mysqli neconectat, pe care îl configurezi cu mysqli_options înainte de mysqli_real_connect.

Sintaxă
mysqli_init(): mysqli|false

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 eroarea mysqli 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.