လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ဖိုင်စစ်ဆင်ရေးလုပ်ငန်းစဉ်နှင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုအတွက်လက်တွေ့ကျသောကုဒ်အသေးစိတ်ကိုအသေးစိတ်ရှင်းပြချက်

PHP ဖိုင်စစ်ဆင်ရေးလုပ်ငန်းစဉ်နှင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုအတွက်လက်တွေ့ကျသောကုဒ်အသေးစိတ်ကိုအသေးစိတ်ရှင်းပြချက်

gitbox 2025-07-17

PHP ဖိုင်လည်ပတ်မှုလုပ်ငန်းစဉ်

0 န်ဆောင်မှုခံယူသူသည် PHP ဖိုင်ကိုတောင်းခံသောအခါဆာဗာသည်အဓိကခွဲခြမ်းစိတ်ဖြာခြင်း,

PHP ဖိုင်များ

ဆာဗာသည် PHP ကုဒ်ကိုပထမဆုံးအကြိမ်ခွဲပြီး script ကို executable ညွှန်ကြားချက်များအဖြစ်ပြောင်းလဲပေးသည်။ PHP ဖိုင်များ <?php အစ, > အဆုံး။

PHP Code ကို Execute လုပ်ပါ

ခွဲခြမ်းစိတ်ဖြာပြီးနောက်ဆာဗာသည် PPP scripts များကို variable များ, functions များနှင့်ယုတ္တိဗေဒလုပ်ငန်းစဉ်များကိုလုပ်ဆောင်ရန် Excries မှလုပ်ဆောင်သည်။ Execution တွင်ဆာဗာသည် code ကို script code ရှိ code ကို script in code ကိုမှန်ကန်စွာကိုင်တွယ်နိုင်ရန်သေချာစေရန်အတွက် server ပတ်ဝန်းကျင်၏ variable များနှင့်လုပ်ဆောင်ချက်များကိုခွဲခြားလိမ့်မည်။

output ကိုကွပ်မျက်ရလဒ်များ

Code Execution ပြီးဆုံးသွားသောအခါဆာဗာသည်ရလဒ်ကိုပုံမှန်အားဖြင့် HTML, JSON, XML သို့မဟုတ် Picture formats များတွင်ဖောက်သည်များအားပြန်လည်ပေးအပ်သည်။

PHP ၏ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်အခြေခံကုဒ်

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 ထိုးဆေးကိုကာကွယ်ရန်ဘုံနည်းလမ်းများ

SQL Injection သည်ဒေတာဘေ့စ်လုံခြုံရေးအတွက်ဘုံခြိမ်းခြောက်မှုတစ်ခုဖြစ်သည်။ ထိရောက်သောအကာအကွယ်ပေးမှုများတွင် -

  • အသုံးပြုသူ input ကိုမှလွတ်မြောက်ရန် MySQLI_REAL_Sescape_String () function ကိုသုံးပါ
  • PDO ၏ POPDO ၏ကြိုတင်ကြေငြာချက်နှင့် parameter beting နည်းပညာကိုလက်ခံပါ

အောက်ပါတို့သည် 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 ကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးအချက်အလက်လုံခြုံရေးကိုသေချာစေသည်။