Declarații pregătite în MySQLi. Linii de cod pentru a explica exemplul precedent. Funcția bind_param().

Declarații pregătite în MySQLi (Prepared Statements in MySQLi)

Exemplu (MySQLi cu declarații pregătite/MySQLi with Prepared Statements)
 
Linii de cod pentru a explica exemplul precedent:
 
"INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"

În SQL-ul nostru, introducem un semn de întrebare (?) unde vrem să înlocuim o valoare întreagă, string, dublă sau blob (integer, string, double or blob).

Apoi, aruncați o privire la funcția bind_param():
 
$stmt->bind_param("sss", $firstname, $lastname, $email);

Această funcție leagă parametrii la interogarea SQL (SQL query) și îi spune bazei de date care sunt parametrii. Argumentul sss” listează tipurile de date (types of data) care sunt parametri. Caracterul s spune mysql-ului parametrul este un șir (string).

Argumentul poate fi unul din următoarele patru tipuri:
 
  • i - număr întreg (integer)
  • d - dublu (double)
  • s - șir (string)
  • b - BLOB

Pentru fiecare parametru trebuie să avem una dintre acestea .

Spunând mysql-ului la ce tip de date (type of data) trebuie să se aștepte, reducem la minimum riscul de injecții SQL (SQL injections.).

Notă: Dacă dorim să introducem date din surse externe (cum ar fi intrarea utilizatorului (user input)), este foarte important ca datele să fie igienizate ( sanitized) și validate.