Automatické uzatváranie placeholderov do úvodzoviek v PDO v PHP
Technicky PDO všetky vkladané hodnoty uzatvára do úvodzoviek, považujúc ich za reťazce, aj keď sú v skutočnosti čísla. To je prijateľné syntaxou SQL. Preto placeholdery nie je potrebné uzatvárať do úvodzoviek, ak máte reťazcovú hodnotu.
Pozrime sa na príklad. Nech v premennej je uložený reťazec:
<?php
$name = 'name1';
?>
Pozíčný placeholder nie je potrebné v tomto prípade uzatvárať do reťazca:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
Pomenovaný placeholder tiež nie je potrebné uzatvárať do reťazca:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
To, že v dotaze budú vždy reťazce, môže napokon niekedy viesť k problémom s syntaxou SQL - tam, kde podľa syntaxe sú povinné čísla. V tomto prípade je možné použiť alternatívny spôsob viazania parametrov, ktorý si rozoberieme v nasledujúcich lekciách.