PDO-ի պոզիցիոն փլեյսհոլդերները PHP-ում
Եկեք հասկանանք, թե ինչպես աշխատել պոզիցիոն փլեյսհոլդերների հետ: Ենթադրենք ունենք երկու փոփոխական, որոնք մենք ցանկանում ենք ներդնել հարցման մեջ.
<?php
$min = 1;
$max = 5;
?>
Ենթադրենք, մենք ցանկանում ենք ներմուծել մեր փոփոխականները հետևյալ կերպ.
<?php
$sql = "SELECT * FROM users WHERE id>$min and id<$max";
?>
Սակայն դա անվտանգ չէ: Ուստի փոփոխականներն ուղղակիորեն ներմուծելու փոխարեն, դրանք փոխարինենք պոզիցիոն փլեյսհոլդերներով, որոնք ներկայացնում են հարցականի նշաններ.
<?php
$sql = 'SELECT * FROM users WHERE id>? and id<?';
?>
Այժմ կատարենք հրամանը, որ կպատրաստի հարցումը.
<?php
$res = $pdo->prepare($sql);
?>
Այժմ կատարենք հարցումը՝ փոխանցելով դրան պարամետրերով մասիվ, որը պարունակում է մեր փոփոխականները: Ընդ որում փոփոխականները կներմուծվեն հարցման մեջ այն հաջորդականությամբ, ինչպես նշված են մասիվում.
<?php
$res->execute([$min, $max]);
?>
Դրանից հետո կարող ենք ստանալ հարցման արդյունքը.
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Հավաքենք ամենը միասին և ստացենք հետևյալ կոդը.
<?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);
}
?>
Տրված են փոփոխականները.
<?php
$age = 30;
$salary = 1000;
?>
Գտեք բոլոր օգտատերերին, որոնց տարիքը կամ աշխատավարձը հավասար են տրված փոփոխականների արժեքներին:
Փորձիր կատարել SQL-ինժեկցիա ձեր կոդում: Համոզվեք, որ այն չի հաջողվի: