Închiderea automată a placeholder-ilor în ghilimele în PDO în PHP

Din punct de vedere tehnic, PDO închide toate valorile inserate în ghilimele, considerându-le șiruri de caractere, chiar dacă acestea sunt de fapt numere. Acest lucru este permis de sintaxa SQL. Prin urmare, nu este nevoie să închideți placeholder-ii în ghilimele, dacă aveți o valoare de tip șir de caractere.

Să ne uităm la un exemplu. Să presupunem că avem stocat un șir de caractere în variabilă:

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

În acest caz, un placeholder pozițional nu trebuie să fie închis în ghilimele:

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

De asemenea, un placeholder numit nu trebuie să fie închis în ghilimele:

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

Faptul că în interogare vor fi întotdeauna șiruri de caractere, cu toate acestea, uneori poate duce la probleme cu sintaxa SQL - acolo unde, din punct de vedere sintactic, sunt obligatorii numerele. În acest caz, puteți folosi o metodă alternativă de legare a parametrilor, pe care o vom analiza în lecțiile următoare.