Аўтаабарачванне плэйсхолдараў у двукоссі ў PDO ў PHP
Тэхнічна PDO усе ўстаўляемыя значэнні абарачае ў двукоссі, лічачы іх радкамі, нават калі фактычна гэта лікі. Гэта дапушчальна сінтаксісам SQL. Таму плэйсхолдары не трэба абарачаць ў двукоссі, калі ў вас радковае значэнне.
Паглядзім на прыкладзе. Хай у нас у зменнай захоўваецца радок:
<?php
$name = 'name1';
?>
Пазыцыйны плэйсхолдар не трэба абарачаць у радок у гэтым выпадку:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
Іменаваны плэйсхолдар таксама не трэба абарачаць у радок:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
Toе, што ў запыце заўсёды будуць радкі, усё-ткі часам можа прыводзіць да праблем з сінтаксісам SQL - там, дзе па сінтаксісе абавязкова лікі. У гэтым выпадку можна скарыстацца альтэрнатыўным спосабам прывязкі параметраў, які мы разгледзім у наступных уроках.