Аутоматско омотавање плејсхолдера у наводнике у PDO у PHP

Технички, PDO све убачене вредности омота у наводнике, третирајући их као стрингове, чак и ако су у ствари бројеви. То је дозвољено синтаксом SQL-а. Зато плејсхолдере није потребно омотати у наводнике, ако имате стринговску вредност.

Погледајмо на примеру. Нека у променљивој чувамо стринг:

php<?php
  $name = 'name1';
?>

Позициони плејсхолдер није потребно омотати у стринг у овом случају:

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

Именовани плејсхолдер такође није потребно омотати у стринг:

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

То што ће у упиту увек бити стрингови, ипак понекад може довести до проблема са синтаксом SQL-а - тамо где је по синтакси обавезно навести бројеве. У том случају може се користити алтернативни начин везивања параметара, који ћемо размотрити у наредним лекцијама.