Autoombrydning af pladsholdere i anførselstegn i PDO i PHP
Teknisk set ombryder PDO alle indsatte værdier i anførselstegn og betragter dem som strenge, selvom de faktisk er tal. Dette er tilladt af SQL-syntaksen. Derfor behøver pladsholdere ikke at være omgivet af anførselstegn, hvis du har en strengværdi.
Lad os se på et eksempel. Antag at vi har en streng gemt i en variabel:
<?php
$name = 'name1';
?>
En positionel pladsholder behøver ikke at være omgivet af anførselstegn i dette tilfælde:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
En navngivet pladsholder behøver heller ikke at være omgivet af anførselstegn:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
At der altid vil være strenge i forespørgslen, kan dog somme tider føre til problemer med SQL-syntaksen - der, hvor syntaksen kræver tal. I dette tilfælde kan man bruge en alternativ metode til at binde parametre, som vi vil se nærmere på i de næste lektioner.