Pembungkus Otomatis Placeholder dalam Tanda Kutip di PDO PHP
Secara teknis, PDO membungkus semua nilai yang dimasukkan dalam tanda kutip, menganggapnya sebagai string, meskipun sebenarnya itu adalah angka. Hal ini diperbolehkan oleh sintaks SQL. Oleh karena itu, placeholder tidak perlu dibungkus dalam tanda kutip jika nilai Anda adalah string.
Mari kita lihat sebuah contoh. Misalkan kita memiliki string yang disimpan dalam variabel:
<?php
$name = 'name1';
?>
Placeholder posisional tidak perlu dibungkus dalam string dalam kasus ini:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare($sql);
$res->execute([$name]);
?>
Placeholder bernama juga tidak perlu dibungkus dalam string:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare($sql);
$res->execute(['name' => $name]);
?>
Fakta bahwa dalam kueri akan selalu berupa string, namun terkadang dapat menyebabkan masalah dengan sintaks SQL - di mana menurut sintaks harus berupa angka. Dalam hal ini, Anda dapat menggunakan cara alternatif untuk mengikat parameter, yang akan kita bahas dalam pelajaran berikutnya.