mysqli_stmt_init în PHP

Creează un obiect gol de interogare pregătită, pe care îl pregătești apoi cu mysqli_stmt_prepare.

Sintaxă
mysqli_stmt_init(mysqli $mysql): mysqli_stmt|false

Ce face mysqli_stmt_init

mysqli_prepare($conn, $sql) face doi pași dintr-o dată: creează obiectul și pregătește interogarea. mysqli_stmt_init face doar primul pas; al doilea îl faci cu mysqli_stmt_prepare. Separarea este utilă rar, de exemplu când vrei să setezi atribute înainte de pregătire.

Parametri

Parametru Descriere
$mysql Conexiunea.

Ce returnează

Un obiect mysqli_stmt nepregătit.

Exemple

Exemplul 1: Creare și pregătire separate

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

$stmt = mysqli_stmt_init($conn);
mysqli_stmt_prepare($stmt, "SELECT COUNT(*) FROM produse WHERE pret > ?");

$prag = 100;
mysqli_stmt_bind_param($stmt, "i", $prag);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $numar);
mysqli_stmt_fetch($stmt);

echo "Produse peste $prag lei: $numar";

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

Produse peste 100 lei: 3

Greșeli frecvente

  • Apelezi mysqli_stmt_execute pe obiect fără mysqli_stmt_prepare. Primești eroarea mysqli_stmt object is not fully initialized.

Comenzi înrudite

  • mysqli_stmt_prepare: Pregătește o interogare SQL cu semne ? pe un obiect creat cu mysqli_stmt_init.
  • mysqli_prepare: Pregătește o interogare SQL cu semne ? în loc de valori. Este metoda sigură împotriva SQL injection.