Vietų žymeklių automatinis kabučių apgaubimas PDO PHP
Techniškai PDO visas įterpiamas reikšmes apgaubia kabutėmis, laikydamas jas eilutėmis, net jei faktiškai tai yra skaičiai. Tai leidžiama SQL sintakse. Todėl vietų žymeklių nereikia apgaubti kabutėmis, jei turite eilutės reikšmę.
Pažiūrėkime pavyzdžiu. Tarkime, kad mūsų kintamajame yra saugoma eilutė:
<?php
$name = 'name1';
?>
Pozicinis vietų žymeklis šiuo atveju nereikalauja apgaubimo eilute:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
Pavadintas vietų žymeklis taip pat nereikalauja apgaubimo eilute:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
Tai, kad užklausoje visada bus eilutės, vis dėlto kartais gali sukelti problemų su SQL sintakse - ten, kur pagal sintaksę privalomi skaičiai. Tokiu atveju galima pasinaudoti alternatyviu parametų susiejimo būdu, kurį aptarsime kitose pamokose.