Аўтаабарачванне плэйсхолдараў у двукоссі ў PDO ў PHP

Тэхнічна PDO усе ўстаўляемыя значэнні абарачае ў двукоссі, лічачы іх радкамі, нават калі фактычна гэта лікі. Гэта дапушчальна сінтаксісам SQL. Таму плэйсхолдары не трэба абарачаць ў двукоссі, калі ў вас радковае значэнне.

Паглядзім на прыкладзе. Хай у нас у зменнай захоўваецца радок:

php<?php
  $name = 'name1';
?>

Пазыцыйны плэйсхолдар не трэба абарачаць у радок у гэтым выпадку:

php<?php
  $sql = 'SELECT * FROM users WHERE name=?';
  $res = $pdo->prepare();
  $res->execute([$name]);
?>

Іменаваны плэйсхолдар таксама не трэба абарачаць у радок:

php<?php
  $sql = 'SELECT * FROM users WHERE name=:name';
  $res = $pdo->prepare();
  $res->execute(['name' => $name]);
?>

Toе, што ў запыце заўсёды будуць радкі, усё-ткі часам можа прыводзіць да праблем з сінтаксісам SQL - там, дзе па сінтаксісе абавязкова лікі. У гэтым выпадку можна скарыстацца альтэрнатыўным спосабам прывязкі параметраў, які мы разгледзім у наступных уроках.