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]);
?>

Сўровда ҳар доим сатрлар бўлиши, яъна баъзан SQL синтаксиси билан муаммоларга олиб келиши мумкин - ана ўша жойларда, қайда синтаксис бўйича мажбуран рақамлар бўлиши керак. Бундай ҳолда параметрларни боглашнинг муқобил усулидан фойдаланиш мумкин, биз буни кейинги дарсларда кўриб чиқамиз.