PHP ကိုအသုံးပြုပြီးဒေတာဘေ့စ်များကိုလည်ပတ်သည့်အခါ PDO သည် စည်းလုံးညီညွတ်သော, ပြောင်းလွယ်ပြင်လွယ်။ လုံခြုံသော interface ကိုပေးရန်နည်းလမ်းဖြစ်သည်။ ၎င်းတို့အနက် PDostatement :: Rowcount () နည်းလမ်းကို SQL operations များမှ ထိခိုက်သောအတန်း များ ရရှိရန်အသုံးပြုသည်။ သို့သော်၎င်းသည်ကွဲပြားခြားနားသောကြေငြာအမျိုးအစားများတွင်အနည်းငယ်ကွဲပြားစွာ ပြုမူ သည် ။ ဤဆောင်းပါးသည်သာမန်လူများနားလည်မှုလွဲမှားခြင်းများကိုမည်သို့ရှောင်ရှားရမည်ကိုအဓိကထားသည်။
များသောအားဖြင့်ကျွန်ုပ်တို့သည်ထည့်သွင်းမှုပြုလုပ်ပြီးနောက်မည်သည့်လိုင်းများကိုအောင်မြင်စွာဖြည့်ဆည်းနိုင်ကြောင်းကျွန်ုပ်တို့သိလိုသည်။
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', 'Alice');
$stmt->bindValue(':email', '[email protected]');
$stmt->execute();
echo $stmt->rowCount(); // မျှော်လင့်ထားသည့် output ကို:1
များသောအားဖြင့်အထူးသဖြင့် MySQL ကို အသုံးပြုသော အခါ Rowcount ( များသောအားဖြင့် 1) ကိုမှန်ကန်စွာပြန်ပို့သည်။ ဒါပေမယ့်သင်က cross-database လိုက်ဖက်တဲ့ ကိုဂရုစိုက်မယ်ဆိုရင်သတိထားရမယ်။
အောက်ပါသုတ်စာရင်းများအဘို့အ:
$sql = "INSERT INTO users (name, email) VALUES
('Bob', '[email protected]'),
('Charlie', '[email protected]')";
$stmt = $pdo->prepare($sql);
$stmt->execute();
echo $stmt->rowCount(); // တည်နေ MySQL နောက်ပုံမှန်အားဖြင့်ပြန်လာ 2
Rowcount () သည် 2 ကိုပြန်ရလိမ့်မည်ဖြစ်သော်လည်း ၎င်းကိုဒေတာဘေ့စ်ကားမောင်းသူများနှင့် Postgresql, SQLite နှင့်အခြားဒေတာဘစများတွင်အမြဲတမ်းမထောက်ပံ့ပါ ။
ဥပမာအချို့ဒေတာဘေ့စ်များအတွက် Postgresql () အတွက် Regcount () အမျိုးအစား ထည့်သွင်းမှု ၏ထုတ်ပြန်ချက်များအတွက်တန်ဖိုးများကိုပြန်ပို့သည်။
ဒါကြောင့်သင် RORCOUT () ကို အသုံးပြုလိုပါက Cross-platform ပလက်ဖောင်းဝန်းကျင်တွင်ထည့်သွင်းရန်လုံခြုံစွာအသုံးပြုလိုပါကသေချာစွာလုပ်ပါ။
ဤအင်္ဂါရပ်ကိုအထောက်အပံ့ပေးသောဒေတာဘေ့စ်ယာဉ်မောင်းကိုသုံးပါ။
ပုံတူသော့ကိုမိတ္တူကူးခြင်းသို့မဟုတ်ပြန်လာသည့်ဝါကျများကိုမှီခိုခြင်းမပြုဘဲစံထည့်သွင်းထားသောဖော်ပြချက်များကိုသုံးပါ (ဒေတာဘေ့စ်သည်သူတို့ကိုမထောက်ခံပါက) ။
ဤတွင်အချို့သောလက်တွေ့ကျသောအကြံပြုချက်များမှာ -
လက်ရှိပတ်ဝန်းကျင်သည် MySQL (သို့) သဟဇာတဖြစ်သော drivers များကို အသုံးပြု. RORGOUT ၏ပြန်လာတန်ဖိုးသည်အဓိပ္ပါယ်ရှိသောဖြစ်သည်။
if ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME) === 'mysql') {
echo "အောင်မြင်စွာထည့်ပါ,အတန်း၏နံပါတ်သွဇာလွှမ်းမိုးမှု:" . $stmt->rowCount();
} else {
echo "မဟုတ် MySQL ဒေတာဘေ့စ်,rowCount() ရလဒ်များမတိဖြစ်နိုင်သည်";
}
ယာဉ်မောင်းအများစုသည်ဘေးဒဏ်သင့်သည့်အတန်းတစ်ခုအတွက် 1 တန်းတစ်မျိုးတည်းကိုပြန်လည်ထည့်သွင်းရန်အကြံပြုသည်။
$pdo->beginTransaction();
$total = 0;
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$data = [
['name' => 'David', 'email' => '[email protected]'],
['name' => 'Eve', 'email' => '[email protected]']
];
foreach ($data as $row) {
$stmt->execute($row);
$total += $stmt->rowCount();
}
$pdo->commit();
echo "စုစုပေါင်းထည့်သွင်း $total အိုကေ";
တစ်ခုတည်းသောသွင်းပွဲကွင်းဆက်တစ်ခုမှတဆင့်သင် Rowcount () သည်ယာဉ်မောင်းတစ်ခုစီအောက်၌တသမတ်တည်းပြုမူရန်သေချာစေနိုင်သည်။
အလစာမမှားခြင်း | ဥပမာပြပါ |
---|---|
ဒေတာဘေ့စ်အားလုံးသည် rowcount () ထည့်သွင်းထားသောအတန်းအရေအတွက်ကိုပြန်ပို့ရန်ထောက်ခံသည်ဟုယုံကြည်ကြသည် | တကယ်တော့ postgresql နှင့် sqlite 0 င်ပြန်လာလိမ့်မည် |
အသုတ်ထည့်သွင်းသည့်အခါယုံကြည်မှု Rowcount () | Non-MySQL ပတ်ဝန်းကျင်တွင်တိကျနိုင်သည် |
ထည့်သွင်းအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် Rowcount () ကို သုံးပါ | အမှားကိုင်တွယ်သည့်ယန္တရားနှင့်ပူးပေါင်းရန် Boolean Return Value () execute () ကိုအသုံးပြုခြင်းသည် ပို. ကောင်းသည် |
ထည့်သွင်းထားသောမူလတန်းသော့ချက် ID (အထူးသဖြင့် autoincroxement key key) ကိုသာဂရုစိုက်ပါကသင်အသုံးပြုနိုင်သည်။
$pdo->lastInsertId();
မှတ်စု: အော်တို incount conscent keys များနှင့်အတူတစ်ခုတည်းအတန်းနှင့်စားပွဲများထည့်သွင်းရန်သာသင့်လျော်သော။
PDostatement :: Rowcount () သည်မတူညီသောဒေတာဘေ့စ်များအကြားအနည်းငယ်ကွဲပြားခြားနားသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ထည့်သွင်းမှုသို့ 0 င် ရောက်သောအတန်းအရေအတွက်ကိုရရှိရန်၎င်းကိုအသုံးပြုသောအခါ၎င်းကိုအကြံပြုသည် -
MySQL ပတ်ဝန်းကျင်တွင်အသုံးပြုရန် ဦး စားပေးထားသည်။
Batch Instention အတွက်အရောင်းအ 0 ယ်များကိုအသုံးပြုရန်ပိုမိုလုံခြုံသည်။
ဒေတာဘေ့စ်ကွဲပြားသောအခြေအနေများတွင် Rightcount () အပေါ်မှီခိုခြင်းကိုရှောင်ရှားရန်ဒေတာဘေ့စ် - တိကျသော ပြန်လာ သို့မဟုတ်အခြားအင်္ဂါရပ်များကိုအသုံးပြုရန်စဉ်းစားသင့်သည်။
PDO အလေ့အကျင့်ဥပမာများကိုပိုမိုကြည့်ရှုရန် https://gitbox.net/docs/pdo သို့ဝင်ရောက်ပါ။