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
$min = 1;
$max = 5;
?>
Üýtgeýjilerimizi şu ýaly goşmak isleýändigimizi düşüneli:
<?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
$sql = 'SELECT * FROM users WHERE id>? and id<?';
?>
Indi soragy taýýarlaýan buýrugy ýerine ýetirýäris:
<?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
$res->execute([$min, $max]);
?>
Şondan soň soragyň netijesini alyp bileris:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Hemmesini jemlesek, aşakdaky kody alyarys:
<?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);
}
?>
Üýtgeýjiler berlen:
<?php
$age = 30;
$salary = 1000;
?>
Ýaşy ýa-da maaşy üýtgeýjilerde berlen baha deň bolan ähli ulanyjylary tapyň.
Kodyňyza SQL-inýeksiony synanyşyp görüň. Onuň geçmeýändigine göz ýetiriň.