PDO pesakohtade automaatne jutumärkidesse panemine PHP-s
Tehniliselt pakub PDO kõik sisestatud väärtused jutumärkidesse, pidades neid stringideks, isegi kui tegelikult on need numbrid. See on SQL-i süntaksi poolt lubatud. Seetõttu ei pea te pesakohti jutumärkidesse panema, kui teil on stringi väärtus.
Vaatame näidet. Oletame, et meil on muutujas salvestatud string:
<?php
$name = 'name1';
?>
Positsioonilist pesakohta ei pea sellisel juhul stringi sisse panema:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
Nimetatud pesakohta ei pea samuti stringi sisse panema:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
Asjaolu, et päringus on alati stringid, võib siiski mõnikord põhjustada probleeme SQL-i süntaksiga - seal, kus süntaksi kohaselt on kohustuslikud numbrid. Sellisel juhul saab kasutada alternatiivset parameetrite seostamise meetodit, mida me käsitleme järgmistes õppetükides.