Considere o seguinte código:
$sql = "INSERT INTO airports (name) VALUES ('$name')";
Agora suponha que
$name
é "Chicago O'Hare"
. Ao fazer a interpolação de string, você obtém este código SQL:INSERT INTO airports (name) VALUES ('Chicago O'Hare')
que está mal formado, porque o apóstrofe é interpretado como uma aspas SQL , e sua consulta apresentará um erro.
Coisas piores também podem acontecer. Na verdade, a injeção de SQL foi classificada como o erro de software mais perigoso de 2011 pela MITRE.
Mas você nunca deve criar consultas SQL usando interpolação de strings. Em vez disso, use consultas com parâmetros.
$sql = 'INSERT INTO airports (name) VALUES ($1)';
$result = pg_query_params($db, $sql, array("Chicago O'Hare"));