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