Prepared statement odděluje SQL šablonu od hodnot parametrů. Aplikace nejprve připraví dotaz a následně do něj naváže data. V PHP je tento postup dostupný například v MySQLi.

Příklad v PHP

PHP
$statement = $db->prepare("SELECT title FROM contents WHERE id = ?");
$statement->bind_param("i", $id);
$statement->execute();

Co parametr pokrývá

Parametr slouží pro hodnotu. Název tabulky, sloupce nebo směr řazení musí aplikace vybírat z pevně dovolených možností; nemají vznikat vložením libovolného uživatelského textu do SQL.

Příklad SQL šablony

SQL
SELECT title, published_at
FROM contents
WHERE status = ? AND id = ?;

Bezpečná práce s SQL nezbavuje aplikaci povinnosti kontrolovat oprávnění a bezpečně vykreslovat HTML.

Další formáty

JSON
{"status": "published", "id": 42}