Аутоматско омотавање плејсхолдера у наводнике у PDO у PHP
Технички, PDO све убачене вредности омота у наводнике, третирајући их као стрингове, чак и ако су у ствари бројеви. То је дозвољено синтаксом SQL-а. Зато плејсхолдере није потребно омотати у наводнике, ако имате стринговску вредност.
Погледајмо на примеру. Нека у променљивој чувамо стринг:
<?php
$name = 'name1';
?>
Позициони плејсхолдер није потребно омотати у стринг у овом случају:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
Именовани плејсхолдер такође није потребно омотати у стринг:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
То што ће у упиту увек бити стрингови, ипак понекад може довести до проблема са синтаксом SQL-а - тамо где је по синтакси обавезно навести бројеве. У том случају може се користити алтернативни начин везивања параметара, који ћемо размотрити у наредним лекцијама.