Automatsko stavlje placeholdera u navodnike u PDO u PHP
Tehnički, PDO sve vrednosti koje se ubacuju stavlja u navodnike, tretirajući ih kao stringove, čak iako su u stvari brojevi. Ovo je dozvoljeno SQL sintaksom. Stoga placeholdere nije potrebno stavljati u navodnike, ako imate vrednost tipa string.
Pogledajmo na primeru. Neka u promenljivoj bude sačuvan string:
<?php
$name = 'name1';
?>
Pozicioni placeholder nije potrebno stavljati u navodnike u ovom slučaju:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
Imenovani placeholder takođe nije potrebno stavljati u navodnike:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
Činjenica da će u upitu uvek biti stringovi, ipak ponekad može dovesti do problema sa SQL sintaksom - tamo gde po sintaksi obavezno trebaju brojevi. U ovom slučaju može se koristiti alternativni način vezivanja parametara, koji ćemo razmotriti u narednim lekcijama.