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

PHP PDO နှင့်အတူဒေတာဘေ့စခန်းစားပွဲပွားခြင်းနှင့်ရွှေ့ပြောင်းမှုများကိုအကောင်အထည်ဖော်ရန်အပြည့်အဝနည်းလမ်း

M66 2025-11-04

PHP PDO နှင့်အတူဒေတာဘေ့စခန်းစားပွဲပွားခြင်းနှင့်ရွှေ့ပြောင်းမှုများကိုအကောင်အထည်ဖော်ရန်အပြည့်အဝနည်းလမ်း

နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်စီမံကိန်းပြုပြင်ထိန်းသိမ်းမှုတွင်စားပွဲများကိုကူးယူရန်လိုအပ်သည့်အခြေအနေများသို့မဟုတ်ကွဲပြားခြားနားသောဒေတာဘေ့စ်များအကြားပြောင်းရွှေ့နေထိုင်ရန်လိုအပ်သည့်အခြေအနေများမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဥပမာအားဖြင့်၎င်းသည်ဆာဗာအသစ်တစ်ခုသို့လျှောက်လွှာတင်ခြင်းသို့မဟုတ်ဒေတာအဆင့်မြှင့်တင်ခြင်းနှင့်ဒေတာအုပ်စုခွဲဖျော်ဖြေသောအခါဥပမာအားဖြင့်ဘုံဖြစ်သည်။ PDO (PHP Data Obserts) Extension ကို PHP တွင်အသုံးပြုခြင်းသည်ဤလုပ်ငန်းစဉ်ကိုထိရောက်စွာပြောင်းလွယ်ပြင်လွယ်ဖြစ်စေနိုင်သည်။

PDO အကြောင်းလေ့လာပါ

PDO ၏ PHP ၏ Built-in Database action action action actstraction action actstraction actstraction action layer ဖြစ်သည်။ PDO မှတစ်ဆင့် developer များကဒေတာဘေ့စ်နှင့်အလွယ်တကူချိတ်ဆက်နိုင်သည်,

ဒေတာဘေ့စ်စားပွဲမိတ္တူဥပမာ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်အရင်းအမြစ်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်နှင့်ပစ်မှတ်ဒေတာဘေ့စ်ကိုအသေအချာဆက်သွယ်ရန်လိုအပ်သည်။ အောက်ဖော်ပြပါဥပမာတွင် MySQL databases နှစ်ခုကိုချိတ်ဆက်ရန်နှင့်စားပွဲတစ်ခု၏ဖွဲ့စည်းပုံကိုချိတ်ဆက်ရန် PDO ကိုမည်သို့အသုံးပြုရမည်ကိုပြသပါမည်။

 // အရင်းအမြစ်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပါ
$sourceHost = 'source_host';
$sourceDB   = 'source_database';
$sourceUser = 'source_username';
$sourcePass = 'source_password';

$sourceDbh = new PDO("mysql:host=$sourceHost;dbname=$sourceDB", $sourceUser, $sourcePass);

// ပစ်မှတ်ဒေတာဘေ့စမှချိတ်ဆက်ပါ
$targetHost = 'target_host';
$targetDB   = 'target_database';
$targetUser = 'target_username';
$targetPass = 'target_password';

$targetDbh = new PDO("mysql:host=$targetHost;dbname=$targetDB", $targetUser, $targetPass);

ဆက်သွယ်မှုပြီးဆုံးပြီးနောက်ကျွန်ုပ်တို့သည်အရင်းအမြစ်ဒေတာဘေ့စ်စားပွဲ၏ဖွဲ့စည်းပုံကိုရှာဖွေပြီးပစ်မှတ်ဒေတာဘေ့စ်တွင်တူညီသောစားပွဲကိုဖန်တီးနိုင်သည်။

 $table = 'source_table';

// query table ဖွဲ့စည်းပုံ
$stmt   = $sourceDbh->query("SHOW CREATE TABLE $table");
$result = $stmt->fetch(PDO::FETCH_ASSOC);

// ပစ်မှတ်ဒေတာဘေ့စအတွက်စားပွဲပေါ်မှာဖန်တီးပါ
$targetDbh->exec($result['Create Table']);

ဤနည်းအားဖြင့်အရင်းအမြစ်ဒေတာဘေ့စ်ရှိဇယားကွက်သည်ပစ်မှတ်ဒေတာဘေ့စ်သို့လုံးလုံးကူးယူထားသည်။

ဒေတာဘေ့စ်စားပွဲရွှေ့ပြောင်းဥပမာ

ထို့နောက်ကျွန်ုပ်တို့သည်အရင်းအမြစ်ဒေတာဘေ့စ်တွင်ဇယားရှိဇယားကွက်ရှိဇယားအချက်အလက်များကိုပြောင်းရွှေ့ခြင်းနှင့်တင်သွင်းခြင်းကိုမည်သို့ပြောင်းရမည်,

 // ပစ်မှတ်ဒေတာဘေ့စ်ရှိစားပွဲဟောင်းများကိုဖျက်ပါ
$targetDbh->exec("DROP TABLE IF EXISTS new_table");

// အရင်းအမြစ်ဒေတာဘေ့စ်မှဒေတာများကိုရွေးချယ်ပါ
$stmt = $sourceDbh->query("SELECT * FROM source_table");
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);

// ပစ်မှတ်ဒေတာဘေ့စ်တွင်စားပွဲအသစ်ထဲသို့အချက်အလက်ထည့်ပါ
$table = 'new_table';

foreach ($data as $row) {
    $columns = implode(',', array_keys($row));
    $values  = implode(',', array_map(function ($value) use ($targetDbh) {
        return $targetDbh->quote($value);
    }, $row));
    $targetDbh->exec("INSERT INTO $table ($columns) VALUES ($values)");
}

အထက်ပါကုဒ်ကိုကွပ်မျက်ပြီးနောက်အရင်းအမြစ်ဒေတာဘေ့စ်စားပွဲရှိအချက်အလက်အားလုံးကိုပစ်မှတ်ဒေတာဘေ့စ်တွင်ဇယားအသစ်သို့အောင်မြင်စွာပြောင်းရွှေ့လာလိမ့်မည်။ မှတ်သားထားသင့်သည်မှာ Target Table ၏လယ်ကွင်းပုံစံသည်အရင်းအမြစ်ဇယားနှင့်ကိုက်ညီမှုရှိရမည်ဟုဆိုသင့်သည်။

အကျဉ်းချုပ်

PHP နှင့် PDO ကို အသုံးပြု. သင်သည်ဒေတာဘေ့စ်စားပွဲများကိုသင်အလွယ်တကူကူးယူပြီးပြောင်းရွှေ့နိုင်သည်။ စားပွဲတစ်ခုလုံးကိုဖွဲ့စည်းပုံတစ်ခုလုံးကိုပြောင်းရွှေ့ခြင်းသို့မဟုတ်ဒေတာများကိုအသုတ်တွင်တင်သွင်းခြင်းရှိမရှိ PDO သည်စည်းလုံးညီညွတ်သောနှင့်လုံခြုံသော interface ကိုထောက်ပံ့ပေးသည်။ Developer များကစီမံကိန်းလိုအပ်ချက်များအပေါ် အခြေခံ. အလိုအလျောက်ရွှေ့ပြောင်းရေးသော scripts (သို့) ဒေတာဘေ့စ်အရံကူးကိရိယာများကိုထပ်မံတိုးချဲ့နိုင်သည်။

PDO ကိုသင့်တော်စွာအသုံးပြုခြင်းသည်ဒေတာဘေ့စ်၏လုပ်ဆောင်မှု၏ထိရောက်မှုကိုတိုးတက်စေရုံသာမကကုဒ်ကိုပိုမိုလုံခြုံမှုရှိစေရန်လည်းပြုလုပ်နိုင်သည်။

မကြာသေးမီ ဆောင်းပါးများ