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<?php
  $name = 'name1';
?>

Pozicioni placeholder nije potrebno stavljati u navodnike u ovom slučaju:

php<?php
  $sql = 'SELECT * FROM users WHERE name=?';
  $res = $pdo->prepare();
  $res->execute([$name]);
?>

Imenovani placeholder takođe nije potrebno stavljati u navodnike:

php<?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.