PHP-də PDO-da Pozisiyaya əsaslanan Placeholder-lər

Gəlin pozisiyaya əsaslanan placeholder-lər ilə necə işləməyi araşdıraq. Tutaq ki, sorğuya əlavə etmək istədiyimiz iki dəyişənimiz var:

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

Tutaq ki, dəyişənlərimizi aşağıdakı kimi əlavə etmək istəyirik:

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

Lakin, bunu belə etmək təhlükəsiz deyil. Buna görə də, dəyişənləri birbaşa əlavə etmək əvəzinə, onları sual işarələri olan pozisiyaya əsaslanan placeholder-lər ilə əvəz edək:

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

İndi sorğunu hazırlayacaq əmri yerinə yetirək:

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

İndi sorğunu yerinə yetirək, ona dəyişənlərimizi ehtiva edən massivi parametr kimi ötürək. Bununla da dəyişənlər massivdə göstərildiyi qaydada sorğuya daxil ediləcək:

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

Bundan sonra sorğunun nəticəsini əldə edə bilərik:

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

Gəlin hamısını birləşdirək və aşağıdakı kodu əldə edək:

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

Dəyişənlər verilmişdir:

php<?php
  $age = 30;
  $salary = 1000;
?>

Yaşı və ya maaşı dəyişənlərdə verilmiş dəyərlərə bərabər olan bütün istifadəçiləri tapın.

Задание 2

Kodunuzda SQL-injeksiya etməyə çalışın. Əmin olun ki, bu, keçməyəcək.