Ini membantu dengan tanda kutip tunggal hanya jika Anda melakukan pernyataan yang disiapkan dengan parameter, jika tidak, yang Anda lakukan hanyalah penggabungan string dan harus tunduk pada pembentukan SQL Anda dengan benar.
Coba sesuatu seperti:
$sql = "INSERT INTO anagrafiche SET
id_ndg = :protocol,
nick = :nick,
nome = :nome,
...
";
$params = array(
':protocol' => $protocol,
':nick' => $nick,
':nome' => $nome,
...
);
try{
$s = $pdo->prepare($sql);
$s->execute($params);
} catch (PDOException $e) {
...
}
Ini juga memberi Anda keuntungan tambahan dalam mengurangi serangan injeksi SQL.
Jika Anda ingin melangkah lebih jauh dan menerapkan tipe data, Anda dapat menggunakan bindValue()
atau bindParam()
seperti:
$sql = "INSERT INTO anagrafiche SET
id_ndg = :protocol,
nick = :nick,
nome = :nome,
...
";
try{
$s = $pdo->prepare($sql);
$s->bindParam(':protocol', $protocol, PDO::PARAM_ST);
$s->bindParam(':nick', $nick, PDO::PARAM_ST);
$s->bindParam(':nome', $nome, PDO::PARAM_ST);
...
$s->bindParam(':some_integer', $some_integer, PDO::PARAM_INT);
...
$s->execute();
} catch (PDOException $e) {
...
}
bindValue()
memiliki sintaks yang mirip dengan bindParam()
tetapi hanya mengikat nilai variabel pada saat mengikat parameter daripada nilai variabel pada saat eksekusi pernyataan.