PHP တွင် PDO အသုံးပြု၍ Positional Placeholders များ
Positional placeholders များနှင့် အလုပ်လုပ်နည်းကို ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် query အတွင်းထည့်လိုသည့် variable နှစ်ခုရှိသည်ဆိုပါစို့။
<?php
$min = 1;
$max = 5;
?>
ကျွန်ုပ်တို့၏ variable များကို အောက်ပါအတိုင်း ထည့်လိုသည်ဆိုပါစို့။
<?php
$sql = "SELECT * FROM users WHERE id>$min and id<$max";
?>
သို့သော် ဤနည်းလမ်းသည် မလုံခြုံပါ။ ထို့ကြောင့် variable များကို တိုက်ရိုက်ထည့်ခြင်းထက် ၎င်းတို့ကို မေးခွန်းသင်္ကေတများဖြင့်ဖော်ပြထားသော positional placeholders များနှင့် အစားထိုးပါမည်။
<?php
$sql = 'SELECT * FROM users WHERE id>? and id<?';
?>
ယခု query ကို ပြင်ဆင် ပေးမည့် command ကို execute လုပ်ပါမည်။
<?php
$res = $pdo->prepare($sql);
?>
ယခု ကျွန်ုပ်တို့၏ variable များပါဝင်သော array တစ်ခုကို parameter အဖြစ် ပို့ပေးလိုက်ခြင်းဖြင့် query ကို execute လုပ်ပါ။ ဤသို့လုပ်ဆောင်ခြင်းဖြင့် variable များသည် array အတွင်းရှိ အစဉ်လိုက် query ထဲသို့ ထည့်သွင်းခြင်းခံရမည်ဖြစ်သည်။
<?php
$res->execute([$min, $max]);
?>
ထို့နောက် query ၏ result ကို ရယူနိုင်ပါပြီ။
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
အားလုံးကို စုစည်းပြီး အောက်ပါ code ကို ရရှိပါမည်။
<?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);
}
?>
Variable များကို ပေးထားသည်။
<?php
$age = 30;
$salary = 1000;
?>
အသက်သို့မဟုတ် လစာသည် variable များတွင် သတ်မှတ်ထားသော တန်ဖိုးနှင့် ညီသော user အားလုံးကို ရှာပါ။
သင်၏ code ထဲသို့ SQL injection ပြုလုပ်ရန် ကြိုးစားကြည့်ပါ။ ၎င်းသည် အောင်မြင်မည်မဟုတ်ကြောင်း သေချာပါစေ။