PHP ကို အသုံးပြု. ဒေတာဘေ့စ်တစ်ခုကို operating လုပ်သည့်အခါ PDostatement :: Rowcount သည်ယခင် SQL လည်ပတ်မှုကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ သို့သော်သင်ငွေပေးချေမှုတစ်ခုနှင့် တွဲဖက်. အသုံးပြုသောအခါ၎င်း၏အပြုအမူသည်နားလည်မှုလွဲမှားခြင်းအချို့ကိုဖြစ်ပေါ်စေသည်။ ဤဆောင်းပါးသည်အတိမ်းရှောင်မှုရှိစေရန်အတွက်ဤလုပ်ငန်းဆောင်တာများတွင်ဤလုပ်ဆောင်မှု၏အမှန်တကယ်အခန်းကဏ် depart ကိုလေ့လာလိမ့်မည်။
Rowcount () သည် PDostatement အရာဝတ်ထု၏နည်းလမ်းများအနက်မှတစ်ခုဖြစ်ပြီးပုံမှန်အားဖြင့် update လုပ်ခြင်း, ဖျက်ခြင်း သို့မဟုတ် ထည့်ခြင်း , ဥပမာအားဖြင့်:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
$stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE last_login >= :date");
$stmt->execute([':date' => '2024-01-01']);
echo $stmt->rowCount(); // ထိခိုက်သောအတန်းအရေအတွက် output
Select queries အတွက် rowcount () အပြုအမူသည်ယုံကြည်စိတ်ချရသောမဟုတ်ကြောင်းသတိပြုသင့်သည်မှာရလဒ်အနေဖြင့်မှတ်တမ်းအရေအတွက်ကိုမပြန်နိုင်သည့်အတွက်ရလဒ်သည်ယုံကြည်စိတ်ချရမှုမရှိပါ။
အရောင်းအ 0 ယ်များစွာသည်စစ်ဆင်ရေးမျိုးစုံအောင်မြင်ရန်သို့မဟုတ်အားလုံးကျရှုံးခြင်း ကို သေချာစေရန်ဖြစ်သည်။ Rowcount () သူ့ဟာသူသည် အကျိုးသက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုထင်ဟပ်စေသောစာရင်းအင်းဆိုင်ရာကိရိယာ တစ်ခုသာဖြစ်သည် ။
ဥပမာတစ်ခုကိုကြည့်ရအောင်။
try {
$pdo->beginTransaction();
$stmt = $pdo->prepare("UPDATE orders SET status = 'processed' WHERE status = 'pending'");
$stmt->execute();
$affected = $stmt->rowCount();
if ($affected === 0) {
throw new Exception("အဘယ်သူမျှမအမိန့်လုပ်ငန်းများ၌ခဲ့ကြသည်");
}
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
echo "ငွေပေးငွေယူပျက်ကွက်: " . $e->getMessage();
}
ဤဥပမာတွင် RORCOUT () သည် အတန်းကိုအဆင့်မြှင့်ထားခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ မရရှိလျှင်ချွင်းချက်တစ်ခုပစ်ချခြင်းနှင့်ငွေပေးငွေယူပြန်လှိမ့်နေသည်။
ဤအသုံးပြုမှုသည် ကျိုးကြောင်းဆီလျော်သည် , သို့သော်အချက်နှစ်ချက်ကိုနားလည်ရမည်။
SQL Execution ပြီးစီးပြီးနောက် Rowcount () ၏ရလဒ်ကိုတွက်ချက်ပြီးငွေပေးချေမှုကိုကျူးလွန်ခြင်းရှိမရှိနှင့်လုံးဝမသက်ဆိုင်ပါ။
မွမ်းမံ မှုတွင်ကိုက်ညီသောအတန်းများမရှိပါက၎င်းသည် 0 ကိုပြန်လည်ရောက်ရှိသည်။ သို့သော်၎င်းသည်ခွဲစိတ်မှုတစ်ခုမှားယွင်းနေသည်ဟုမဆိုလိုပါ။
ကွဲပြားခြားနားသောဒေတာဘေ့စ် supcount () အနည်းငယ်ကွဲပြားခြားနား ဥပမာအားဖြင့်:
MySQL သည်ပြန်လည်ပတ်ခြင်းနှင့်ကိုက်ညီသောကိုက်ညီမှုရှိသော်လည်း client_found_rows ကို ဖွင့ ် ခြင်းမရှိပါကမပြောင်းလဲပါ။
Postgresql သည် အမှန်တကယ်ပြုပြင်ထားသောအတန်းများကိုသာပြန်လည်ပေးအပ်သည်။
Sqlite 's အကောင်အထည်ဖော်မှု () rowcount () သည် MySQL နှင့် ပို. နီးစပ်သော်လည်းအသေးစိတ်အချက်အလက်များကိုအာရုံစိုက်ရန်လိုအပ်သည်။
ဆိုလိုသည်မှာသင်သည် Rowcount () ကို ယုတ္တိရှိသောဆုံးဖြတ်ချက်ဖြင့်အသုံးပြုပါက, တိကျသောဒေတာဘေ့စ်အပြုအမူနှင့်ပေါင်းစပ်ခြင်းအတွက်လုံလောက်သောစမ်းသပ်ခြင်းပြုလုပ်ရန်လိုအပ်သည်။
အချို့သော developer တချို့က Rowcount () သည် အရောင်းအ 0 ယ်တစ်ခုဖြစ်သော "အောင်မြင်မှု" ရှိမရှိကိုအကဲဖြတ်ရန်အသုံးပြုနိုင်ကြောင်းမှားယွင်းစွာယုံကြည်ကြသည်။ ငွေပေးငွေယူအောင်မြင်မှုရှိမရှိ -
ထုတ်ပြန်ချက်များအားလုံးမှန်ကန်စွာကွပ်မျက်ခံရခြင်းရှိမရှိ;
အတိအလင်း ကျူးလွန်ရန်အတိအလင်းခေါ်ဆိုမှုကိုရန်ဖြစ်စေ,
ခြွင်းချက်ဖမ်းမိခြင်း ,
ဆုံးဖြတ်ကြစို့။
Rowcount () သည်အရန်စီရင်ချက်၏ဖြစ်နိုင်ချေရှိသောအစိတ်အပိုင်းတစ်ခုသာဖြစ်သည်။ ဥပမာအားဖြင့်:
if ($stmt->rowCount() < 1) {
// ၎င်းသည်စီးပွားရေးအုပ်ချုပ်မှုကိုပျက်ကွက်နိုင်သည်,ဒါဟာသေချာပေါက်ဆိုလိုပါဘူးSQLExecution မအောင်မြင်ပါ
}
Rowcount () ကို ပိုမိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုရန်အတွက်အောက်ပါအချက်များကိုလိုက်နာရန်အကြံပြုသည်။
Non-select လုပ်သည့်ထုတ်ပြန်ချက်များအပြီးတွင်သာယုတ္တိတရားစီရင်ခြင်းအတွက်သာအသုံးပြုသည် ။
၎င်းကိုအောင်မြင်သောငွေပေးငွေယူအတွက်တစ်ခုတည်းသောစံအဖြစ်မသုံးပါနှင့် ။
ပျက်ကွက်မှုသို့မဟုတ်အောင်မြင်မှုများကိုတရားစီရင်ရန်ပြန်လာသည့်အတန်းများအပေါ်မှီခိုခြင်းမှရှောင်ကြဉ်ရန်ခြွင်းချက်ကိုင်တွယ်ခြင်းဖြင့်အရောင်းအ 0 ယ်များကိုသုံးပါ ။
ဒေတာဘေ့စ်တွင် Rowcount ၏အမှန်တကယ်ပံ့ပိုးမှုအပြုအမူကိုနားလည်ပါ ။
capatibility layer သို့မဟုတ်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်းဆိုင်ရာလျှောက်လွှာများအတွက်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်း ,
အသုံးပြုသူအဆင့်အတန်းကိုမွမ်းမံပြီးနောက်ပြင်ပအသိပေးချက် interface ကိုခေါ်ရန်လိုအပ်သည့်စနစ်တစ်ခုရှိသည်ဆိုပါစို့။
try {
$pdo->beginTransaction();
$stmt = $pdo->prepare("UPDATE users SET status = 'verified' WHERE email = :email");
$stmt->execute([':email' => '[email protected]']);
if ($stmt->rowCount() === 1) {
// အောင်မြင်စွာ updated,ပြင်ပအသိပေးချက်ဝန်ဆောင်မှုခေါ်ဆိုခြင်း
file_get_contents("https://gitbox.net/api/[email protected]");
} else {
throw new Exception("အသုံးပြုသူအဆင့်မြှင့်တင်မှုမရှိသေးပါ");
}
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
error_log("ငွေပေးငွေယူပျက်ကွက်:" . $e->getMessage());
}
ဤနေရာတွင်အသုံးပြုသူတစ် ဦး ကိုအောင်မြင်စွာအဆင့်မြှင့်တင်ပြီးအောင်မြင်စွာအဆင့်မြှင့်တင်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည် ။ ၎င်းသည်ငွေပေးချေမှုတွင် "Logical Branch Control Point Point 'အဖြစ်ပုံမှန်အခန်းကဏ် point ကိုထင်ဟပ်သည်။
PDostatement :: Rowcount () သည်အသုံးဝင်သော်လည်းနားလည်မှုလွဲခြင်း function ဖြစ်သည်။ ၎င်းသည်ငွေပေးငွေယူတစ်ခု၏အနုမြူဗုံးကိုမဆုံးဖြတ်နိုင်သော်လည်းစီးပွားရေးယုတ္တိဗေဒတွင်အရန်အခန်းကဏ် play မှပါ 0 င်နိုင်သည်။ ၎င်း၏အနှစ်သာရကိုမှန်ကန်စွာနားလည်ခြင်းအားဖြင့်သာငွေသွင်းခြင်းအပြောင်းအလဲအတွက်အလွဲသုံးစားမှုကိုကျွန်ုပ်တို့ရှောင်ရှားနိုင်သည်။