ဒေတာဘေ့ စ ်လုပ်ငန်းများကိုအထူးသဖြင့်အသုတ်တွင်အချက်အလက်များကိုထည့်သွင်းသောအခါဒေတာအပိုင်းတိုင်းကိုမှန်ကန်စွာဖြည့်ဆည်းပေးရန်နှင့်ဒေတာရှေ့နောက်ညီမှုကိုထိန်းသိမ်းရန်သေချာစေရန်နှင့်ဒေတာရှေ့နောက်ညီမှုများကိုမှန်ကန်စွာထိန်းသိမ်းထားရန်သေချာစေရန်နှင့်ဒေတာရှေ့နောက်ညီမှုများကိုမှန်ကန်စွာထိန်းသိမ်းထားရန်သေချာစေရန်နှင့်ဒေတာရှေ့နောက်ညီမှုကိုထိန်းသိမ်းထားရန်သေချာစေရန်အတွက်အချက်အလက်များစွာပြုလုပ်ရန်နှင့်ဒေတာရှေ့နောက်ညီမှုကိုထိန်းသိမ်းထားရန်သေချာစေရန်အတွက်အချက်အလက်များကိုမှန်ကန်စွာဖြည့်ဆည်းပေးနိုင်ရန်အတွက်အရေးကြီးသည်။ PHP ၏ PDO ၏ PMOE Extension သည်အားကောင်းသောဒေတာဘေ့စ်စစ်ဆင်ရေးစွမ်းရည်များနှင့် pdostatement :: Rowcount function ကိုကျွန်ုပ်တို့အား SQL စစ်ဆင်ရေးအောင်မြင်စွာလုပ်ဆောင်သည်ကိုဆုံးဖြတ်ရန်ကူညီနိုင်သည်။ ဤဆောင်းပါးတွင် Batch Insert စစ်ဆင်ရေးများ၏အောင်မြင်မှုများကိုအတည်ပြုရန်နှင့်ဒေတာရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ဤလုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာပါမည်။
ပထမ ဦး စွာ PDO ၏အခြေခံအသုံးပြုမှုကိုသုံးသပ်ကြည့်ကြစို့။ PDO (PHP Data Obserts) သည် Unified database access interface ကိုထောက်ပံ့ပေးသော PHP တွင်တိုးချဲ့ခြင်းဖြစ်သည်။ ကျွန်ုပ်တို့သည် PDO မှတစ်ဆင့်ဒေတာဘေ့စ်ကို ဆက်သွယ်. SQL Query များကို execute လုပ်နိုင်သည်။
ထည့်သွင်း မှုတစ်ခုပြုလုပ်သောအခါ PDO သည်အောင်မြင်စွာဖြည့်စွက်ထားသောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေပြီးစစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်အရေးကြီးသည်။ သို့သော်ကျွန်ုပ်တို့သည်အသုတ်သွင်းကိုလုပ်ဆောင်သောအခါအချက်အလက်များ၏အပိုင်းအစတစ်ခုစီကိုဖြည့်စွက်ခြင်းရှိမရှိမှန်ကန်စွာဆုံးဖြတ်ရန်အထူးသဖြင့်ရှုပ်ထွေးသည်။
ကျွန်ုပ်တို့သည်အသုံးပြုသူအချက်အလက်များကိုဒေတာဘေ့စ်သို့ထည့်သွင်းရန်လိုအပ်သည်ဆိုပါစို့။ PDO ကိုအသုံးပြုခြင်းသည်အရောင်းအ 0 ယ်များမှတဆင့်အချက်အလက်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေနိုင်သည်။ အသုတ်သွင်းခြင်းစစ်ဆင်ရေးသည်ယေဘုယျအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
try {
// ဖန်တီး PDO ဥပမာအားဖြင့်ဒေတာဘေ့စ်ကိုချိတ်ဆက်ပါ
$pdo = new PDO("mysql:host=localhost;dbname=testdb", "username", "password");
// တည်ဆောက်သည် PDO အမှား mode ကို
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$pdo->beginTransaction();
// ဖြည့်စွက်ခံရဖို့အသုတ်ဒေတာ
$data = [
['name' => 'Alice', 'email' => '[email protected]'],
['name' => 'Bob', 'email' => '[email protected]'],
['name' => 'Charlie', 'email' => '[email protected]']
];
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
// parameters တွေကို bind နှင့်ထည့်သွင်းပါ
foreach ($data as $row) {
$stmt->bindParam(':name', $row['name']);
$stmt->bindParam(':email', $row['email']);
$stmt->execute();
}
// တင်သွင်းမှုတင်သွင်း
$pdo->commit();
// ဖြည့်စွက်အတန်း၏နောက်ဆုံးအရေအတွက်ကိုရယူပါ
$insertedRows = $stmt->rowCount();
echo "အောင်မြင်စွာဖြည့်စွက် $insertedRows လိုင်းဒေတာ。";
} catch (Exception $e) {
// အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါငွေပေးငွေယူကိုပြန်လှိမ့်ပါ
$pdo->rollBack();
echo "အမှား: " . $e->getMessage();
}
?>
အထက်ပါကုဒ်သည်အသုတ်သွင်းခြင်းလုပ်ငန်းများအတွက် PDO ကိုမည်သို့အသုံးပြုရမည်ကိုပြသပြီးထည့်သွင်းပြီးနောက်ဖြည့်စွက်ထားသောအတန်းများရရှိရန် Rowcount () ကို အသုံးပြုပါ။ ဤသည်မှာထည့်သွင်းအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်အခြေခံနည်းလမ်းဖြစ်သည်။
Batch Insert Insert လုပ်ငန်းများ၌ဒေတာတိုင်းကိုမှန်ကန်စွာဖြည့်စွက်ခြင်းနှင့်အမှားများကိုမှားယွင်းစွာဖြည့်စွက်ရန်သေချာစေရန်အလွန်အရေးကြီးသည်။ ဒေတာရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ကျွန်ုပ်တို့သည်အစုအဝေးခွဲစိတ်မှုတစ်လျှောက်လုံးတွင်အရောင်းအ 0 ယ်များ ( beginransaction) နှင့် commit ) ကိုအသုံးပြုလေ့ရှိသည်။ ၎င်းသည်အချို့သောအချက်အလက်များကိုအောင်မြင်စွာဖြည့်စွက်နိုင်သည့်အခြေအနေကိုရှောင်ရှားနိုင်ပြီးအချို့သောအချက်အလက်များကိုဖြည့်စွက်ခြင်းမအောင်မြင်ပါ။
Rowcount () သည် အကျိုးသက်ရောက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိသော်လည်း Batch Inserts အတွက်အချက်အလက်များသည်အောင်မြင်မှုရရှိပါက Regcount ၏ rowcount () သည်ကျွန်ုပ်တို့မျှော်လင့်ထားသည့်ထည့်သွင်းမှုအရေအတွက်နှင့်ညီမျှသင့်သည်။ ထည့်သွင်းမှုပျက်ကွက်မှုများရှိပါက Rowcount () ၏တန်ဖိုးသည်မျှော်မှန်းထားသည်ထက်နိမ့်ကျလိမ့်မည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်ထည့်သွင်းမှုသည် Regnount တန်ဖိုးကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်အောင်မြင်မှုသည်အောင်မြင်မှုရှိမရှိကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။
if ($stmt->rowCount() === count($data)) {
echo "အချက်အလက်အားလုံးကိုအောင်မြင်စွာထည့်သွင်းထားသည်。";
} else {
echo "အချို့ဒေတာသွင်းချက်မအောင်မြင်ပါ。";
// 在此处可以进行အမှား处理,回滚或记录အမှား
}
Batch Instertion ကိုဖျော်ဖြေတင်ဆက်သည့်အခါအချို့သောအချက်အလက်ထည့်သွင်းမှုပျက်ကွက်လျှင်ပင်စစ်ဆင်ရေးအားလုံးကိုဒေတာဘေ့စ်၏ရှေ့နောက်ညီညွတ်မှုကိုထိန်းသိမ်းရန်နောက်သို့လှိမ့်ချရန်လိုအပ်သည်။ အရောင်းအ 0 ယ်များကိုအသုံးပြုခြင်းသည်အသုတ်ထည့်သွင်းမှုတစ်ခုလုံးကိုအောင်မြင်စွာသို့မဟုတ်ပျက်ကွက်ခြင်းများကိုသေချာစေသည်။
try {
$pdo->beginTransaction();
foreach ($data as $row) {
$stmt->bindParam(':name', $row['name']);
$stmt->bindParam(':email', $row['email']);
$stmt->execute();
}
// အားလုံးထည့်သွင်းအောင်မြင်ရန်သေချာပါစေ
if ($stmt->rowCount() === count($data)) {
$pdo->commit();
echo "အားလုံးဒေတာသွင်းအောင်မြင်စွာ。";
} else {
throw new Exception("ဒေတာသွင်း,ပြန်အရောင်းအလှိမ့်。");
}
} catch (Exception $e) {
$pdo->rollBack();
echo "ငွေပေးငွေယူ Loverback,အမှား信息:" . $e->getMessage();
}
အထက်ဖော်ပြပါကုဒ်နံပါတ် () ROWCOUT () ပြန်လာသည့်အရေအတွက်သည်ကျွန်ုပ်တို့မျှော်လင့်ထားသည့်ထည့်သွင်းမှုအရေအတွက်နှင့်မကိုက်ညီပါကကျွန်ုပ်တို့သည်ခြွင်းချက်တစ်ခုကိုချမှတ်ပြီး ဖမ်းမိသည့် ကြေငြာချက်တွင်ငွေပေးချေမှုနောက်ဆက်များကိုပြုလုပ်သည်။
PDostatement :: Rowcount () အသုတ်သွင်းစစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိထိရောက်စွာဆုံးဖြတ်ရန်။
အရောင်းအ 0 ယ်များနှင့် တွဲဖက်. ၎င်းသည်အသုတ်သွင်းခြင်း၏အနုမြူဗုံးကိုသေချာစေပြီးတစ်စိတ်တစ်ပိုင်းထည့်သွင်းပျက်ကွက်ခြင်းကြောင့်ဖြစ်သည့်အချက်အလက်မကိုက်ညီမှုကိုရှောင်ရှားနိုင်သည်။
ဒေတာရှေ့နောက်ညီညွတ်မှုကိုထိန်းသိမ်းခြင်းသည်အသုတ်စစ်ဆင်ရေးများတွင်အဓိကအချက်ဖြစ်သည်။
ဤချဉ်းကပ်မှုမှတစ်ဆင့်အသုတ်တွင်ထည့်သွင်းထားသောအချက်အလက်များတိုင်းကိုကျွန်ုပ်တို့သေချာစွာဖြည့်ဆည်းပေးနိုင်ပြီးအချက်အလက်များ၏သမာဓိနှင့်ရှေ့နောက်ညီညွတ်မှုကိုအကြီးမားဆုံးအတိုင်းအတာအထိအောင်မြင်စွာဖြည့်ဆည်းပေးနိုင်ရန်သေချာစေနိုင်ပါသည်။
<footer style = "text-align: center;"> <p> ဆောင်းပါး link: [https://gitbox.net/insuccess) (https://gitbox.net/success) </ p> </ footer>သက်ဆိုင်သောတက်(ဂ်)များ:
PDOStatement