0 န်ဆောင်မှုခံယူသူသည် PHP ဖိုင်ကိုတောင်းခံသောအခါဆာဗာသည်အဓိကခွဲခြမ်းစိတ်ဖြာခြင်း,
ဆာဗာသည် PHP ကုဒ်ကိုပထမဆုံးအကြိမ်ခွဲပြီး script ကို executable ညွှန်ကြားချက်များအဖြစ်ပြောင်းလဲပေးသည်။ PHP ဖိုင်များ <?php အစ, > အဆုံး။
ခွဲခြမ်းစိတ်ဖြာပြီးနောက်ဆာဗာသည် PPP scripts များကို variable များ, functions များနှင့်ယုတ္တိဗေဒလုပ်ငန်းစဉ်များကိုလုပ်ဆောင်ရန် Excries မှလုပ်ဆောင်သည်။ Execution တွင်ဆာဗာသည် code ကို script code ရှိ code ကို script in code ကိုမှန်ကန်စွာကိုင်တွယ်နိုင်ရန်သေချာစေရန်အတွက် server ပတ်ဝန်းကျင်၏ variable များနှင့်လုပ်ဆောင်ချက်များကိုခွဲခြားလိမ့်မည်။
Code Execution ပြီးဆုံးသွားသောအခါဆာဗာသည်ရလဒ်ကိုပုံမှန်အားဖြင့် HTML, JSON, XML သို့မဟုတ် Picture formats များတွင်ဖောက်သည်များအားပြန်လည်ပေးအပ်သည်။
PHP တွင် MySQL databases နှင့်ချိတ်ဆက်ခြင်းသည်များသောအားဖြင့်ပြထားသည့်အတိုင်း MySQLI extension ကိုအသုံးပြုသည်။
$username = "အသုံးပြုသူ";
$password = "လှျို့ဝှက်စကား";
$hostname = "Host အမည်";
$database = "ဒေတာဘေ့စ်အမည်";
// ဆက်သွယ်မှုအရာဝတ်ထုတစ်ခုဖန်တီးပါ
$conn = new mysqli($hostname, $username, $password, $database);
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
echo "အောင်မြင်စွာဆက်သွယ်မှု";
အထက်ဖော်ပြပါကုဒ်သည် host name, user name, password နှင့် database name name name တွင်ဖြတ်သန်းခြင်းဖြင့်ဆက်သွယ်မှုကိုသတ်မှတ်သည်။ ဆက်သွယ်မှုအောင်မြင်ပြီးနောက် SQL ထုတ်ပြန်ချက်များကို $ con မှတဆင့်ကွပ်မျက်နိုင်သည်။
MySQLI အရာဝတ်ထုကို အသုံးပြု. ရိုးရှင်းသောမေးမြန်းချက်များကိုလုပ်ဆောင်ရန်ကုဒ်ဖြစ်သည်။
$sql = "SELECT * FROM ဇယားနာ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// တစ်ခုချင်းစီကိုမှတ်တမ်း output
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
} else {
echo "အဘယ်သူမျှမစုံစမ်းမှုရလဒ်များ";
}
$conn->close();
စုံစမ်းမှုကိုအကောင်အထည်ဖော်ပြီးနောက်ကုဒ်သည်ရလဒ်များကိုဖြတ်သန်းသွားစေပြီးဒေတာကိုတစ်ခုမှထုတ်လွှင့်ပြီးနောက်ဆုံးတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်လိုက်သည်။
SQL Injection သည်ဒေတာဘေ့စ်လုံခြုံရေးအတွက်ဘုံခြိမ်းခြောက်မှုတစ်ခုဖြစ်သည်။ ထိရောက်သောအကာအကွယ်ပေးမှုများတွင် -
အောက်ပါတို့သည် PDO ဆန့်ကျင်ရေးကို အသုံးပြု. ကုဒ်နမူနာကိုပြသသည်။
$sql = "SELECT * FROM ဇယားနာ WHERE name = :name";
$stmt = $conn->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($result);
$conn->close();
ကြိုတင်ပြင်ဆင်ထားသောနည်းလမ်းမှတစ်ဆင့် primomleving sql နှင့် bindvalue binding parametersing parameters များကအန္တရာယ်ရှိသော SQL Injection ကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးအချက်အလက်လုံခြုံရေးကိုသေချာစေသည်။