PHP-daky PDO-da Ýerleşdiriji Bellikler

Ýerleşdiriji bellikler bilen nähili işlemelidigine düşüneli. Bizde soraga goşmak isleýän iki üýtgeýjimiz bar diýeli:

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

Üýtgeýjilerimizi şu ýaly goşmak isleýändigimizi düşüneli:

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

Emma muny etmek howpsuz däl. Şonuň üçin üýtgeýjileri göni girizmek ýerine, olary sorag bellikleri bilen çalyşmaly, olar sorag belgisi bolup durýar:

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

Indi soragy taýýarlaýan buýrugy ýerine ýetirýäris:

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

Indi soragy ýerine ýetirýäris, ona üýtgeýjilerimizi öz içine alýan massiw parametr hökmünde berýäris. Şol ýagdaýda üýtgeýjiler massiwde görkezilen tertipde soraga goşular:

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

Şondan soň soragyň netijesini alyp bileris:

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

Hemmesini jemlesek, aşakdaky kody alyarys:

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

Üýtgeýjiler berlen:

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

Ýaşy ýa-da maaşy üýtgeýjilerde berlen baha deň bolan ähli ulanyjylary tapyň.

Задание 2

Kodyňyza SQL-inýeksiony synanyşyp görüň. Onuň geçmeýändigine göz ýetiriň.