PHPda PDO orqali pozitsion pleysxolderlar

Keling, pozitsion pleysxolderlar bilan qanday ishlashni o'rganamiz. Faraz qilaylik, bizda ikkita o'zgaruvchi bor, ularni so'rovga kiritishni istaymiz:

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

Faraz qilaylik, o'zgaruvchilarimizni quyidagicha kiritishni istaymiz:

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

Biroq, bunday qilish xavflidir. Shuning uchun, o'zgaruvchilarni to'g'ridan-to'g'ri kiritish o'rniga, ularni savol belgilari bo'lgan pozitsion pleysxolderlar bilan almashtiramiz:

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

Endi so'rovni tayyorlaydigan komandani bajaramiz:

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

Endi so'rovni bajaramiz, unga parametr sifatida o'zgaruvchilarimizni o'z ichiga olgan massivni beramiz. Bunda o'zgaruvchilar massivda ko'rsatilgan tartibda so'rovga kiritiladi:

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

Shundan so'ng so'rov natijasini olishimiz mumkin:

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

Hammasini birlashtirib, quyidagi kodni olamiz:

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

Quyidagi o'zgaruvchilar berilgan:

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

Barcha foydalanuvchilarni toping, ularning yoshi yoki maoshi berilgan o'zgaruvchilardagi qiymatlarga teng.

Задание 2

Kodingizga SQL-inyeksiya qilishga harakat qiling. Uning o'tmasligiga ishonch hosil qiling.