PDO'da İsimlendirilmiş Yer Tutucular (Placeholders) PHP'de

Kolaylık olması için, dizideki değişkenlerin sırasının önemli olmadığı isimlendirilmiş yer tutucular kullanılabilir. Bunlarla nasıl çalışılacağına bir göz atalım.

Yine aşağıdaki değişkenlere sahip olduğumuzu varsayalım:

php<?php
  $min = 1;
  $max = 5;
?>

İsimlendirilmiş yer tutucular kullanarak bir SQL sorgusu yapalım. Sözdizimi şu şekildedir: iki nokta üst üste ve ardından yer tutucunun adı. Bunları sorguda kullanalım:

php<?php
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>

Sorguyu hazırlayalım:

php<?php
  $res = $pdo->prepare($sql);
?>

Anahtarların SQL sorgusundaki yer tutucu adları, değerlerin ise ilgili değişkenler olduğu bir ilişkisel dizi parametre olarak vererek sorguyu çalıştıralım:

php<?php
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
?>

Sonucu görebiliriz:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>

Hepsini bir araya getirelim ve aşağıdaki kodu elde edelim:

php<?php
  $min = 1;
  $max = 5;
  
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
  $res = $pdo->prepare($sql);
  
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
  
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

Aşağıdaki değişken verilmiştir:

php<?php
  $age = 30;
?>

Yaşı değişkende verilen değere eşit olan tüm kullanıcıları bulun.

Задание 2

Aşağıdaki değişkenler verilmiştir:

php<?php
  $age1 = 20;
  $age2 = 30;
?>

Yaşı, değişkenlerin değerleriyle belirlenen aralıkta olan tüm kullanıcıları bulun.

Задание 3

Aşağıdaki değişkenler verilmiştir:

php<?php
  $age1 = 20;
  $age2 = 30;
  
  $salary1 = 1000;
  $salary2 = 2000;
?>

Hem yaşı hem de maaşı, değişkenlerin değerleriyle belirlenen aralıkta olan tüm kullanıcıları bulun.