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_executepe obiect fărămysqli_stmt_prepare. Primești eroareamysqli_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.