Placeholderët Pozicional në PDO në PHP
Le të kuptojmë se si të punojmë me placeholderët pozicional. Le të themi se kemi dy variabla që dëshirojmë t'i fusim në kërkesë:
<?php
$min = 1;
$max = 5;
?>
Le të themi se dëshirojmë t'i fusim variablat tona në mënyrën e mëposhtme:
<?php
$sql = "SELECT * FROM users WHERE id>$min and id<$max";
?>
Megjithatë, nuk është e sigurt ta bësh kështu. Prandaj, në vend që të futen variablat direct, le t'i zëvendësojmë me placeholderë pozicional, të cilët përfaqësohen nga shenjat e pikëpyetjes:
<?php
$sql = 'SELECT * FROM users WHERE id>? and id<?';
?>
Tani le të ekzekutojmë komandën që do të përgatisë kërkesën:
<?php
$res = $pdo->prepare($sql);
?>
Tani le të ekzekutojmë kërkesën, duke i kaluar si parametra nje array që përmban variablat tona. Në këtë rast variablat do të futen në kërkesë në atë rend në të cilin janë specifikuar në array:
<?php
$res->execute([$min, $max]);
?>
Pas kësaj mund të marrim rezultatin e kërkesës:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Le të mbledhim të gjitha së bashku dhe të marrim kodin e mëposhtëm:
<?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);
}
?>
Janë dhënë variablat:
<?php
$age = 30;
$salary = 1000;
?>
Gjeni të gjithë përdoruesit, mosha ose paga e të cilëve është e barabartë me vlerat e dhëna në variabla.
Përpiquni të kryeni një SQL-injection në kodin tuaj. Sigurohuni që ajo nuk do të kalojë.