Samodejno zavijanje nadomestnih oznak v narekovaje v PDO v PHP
Tehnično PDO vse vstavljene vrednosti zavije v narekovaje in jih obravnava kot nize, tudi če so dejansko številke. To je dovoljeno s skladnjo SQL. Zato nadomestnih oznak ni treba zavijati v narekovaje, če imate vrednost niza.
Poglejmo si primer. Predpostavimo, da imamo v spremenljivki shranjen niz:
<?php
$name = 'name1';
?>
Pozicijske nadomestne oznake v tem primeru ni treba zavijati v niz:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare($sql);
$res->execute([$name]);
?>
Imenovane nadomestne oznake prav tako ni treba zavijati v niz:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare($sql);
$res->execute(['name' => $name]);
?>
Dejstvo, da bodo v poizvedbi vedno nizi, vseeno lahko včasih vodi do težav s skladnjo SQL - tam, kjer po skladnji obvezno zahtevajo številke. V tem primeru se lahko poslužite alternativnega načina vezave parametrov, ki ga bomo obravnavali v naslednjih lekcijah.