Perhatikan kode berikut:
$sql = "INSERT INTO airports (name) VALUES ('$name')";
Sekarang anggaplah $name
adalah "Chicago O'Hare"
. Saat Anda melakukan interpolasi string, Anda mendapatkan kode SQL ini:
INSERT INTO airports (name) VALUES ('Chicago O'Hare')
yang tidak berbentuk, karena tanda kutip ditafsirkan sebagai tanda kutip SQL , dan kueri Anda akan error.
Hal-hal yang lebih buruk juga bisa terjadi. Faktanya, injeksi SQL menduduki peringkat #1 Kesalahan Perangkat Lunak Paling Berbahaya tahun 2011 oleh MITRE.
Tetapi Anda tidak boleh membuat kueri SQL menggunakan interpolasi string. Gunakan kueri dengan parameter sebagai gantinya.
$sql = 'INSERT INTO airports (name) VALUES ($1)';
$result = pg_query_params($db, $sql, array("Chicago O'Hare"));