PDO (PHP Data Obserts) ကို သုံး. ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ PDostatement :: PDCOTTETESS :: ယခင် SQL ထုတ်ပြန်ချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုရရှိရန်အသုံးပြုသည်။ သို့သော်အချို့ကိစ္စရပ်များတွင် Rowcount function သည်အနှုတ်တန်ဖိုးကိုပြန်ပေးနိုင်သည်။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏ဘုံအကြောင်းများကိုခွဲခြမ်းစိတ်ဖြာပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။
PDostatement :: Rowcount function သည်ဒေတာဘေ့စ်စားပွဲပေါ်ရှိလတ်တလော SQL ကြေငြာချက်မှအကျိုးသက်ရောက်သည့်အတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ ယေဘုယျအားဖြင့် ပြောရလျှင် , ဤ function ကို ထည့်သွင်း ခြင်း , ဥပမာအားဖြင့်:
$stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE age > 18");
$stmt->execute();
echo $stmt->rowCount(); // ထိခိုက်သောအတန်းအရေအတွက် output
သို့သော်အချို့ဖြစ်ရပ်များတွင်အထူးသဖြင့်ဒေ တာ ဘေ့စ်ယာဉ်မောင်းများကိုအသုံးပြုသောအခါ, ထို့နောက်ကျွန်ုပ်တို့သည်ဤဖြစ်စဉ်ကိုအသေးစိတ်ဆွေးနွေးပါမည်။
PDostatement ၏အပြုအမူ :: Rowcount သည်ကွဲပြားခြားနားသောဒေတာဘေ့စ်ယာဉ်မောင်းများနှင့်လုံးဝမကိုက်ညီပါ။ အထူးသဖြင့် MySQL ကဲ့သို့သောဒေတာဘေ့စ်စနစ်များသည်အထူးသဖြင့် Delete သို့မဟုတ် update လုပ်ခြင်း လုပ်ငန်းများအားဖြည့်ဆည်းပေးသည့်အခါဒေတာဘေ့စ်သည်အတန်းကိုမပြန်နိုင်ကြောင်းညွှန်ပြသည်။
MySQL : အချို့သောကိစ္စရပ်များတွင်အထူးသဖြင့်ကြိုတင်သတ်မှတ်ထားသောထုတ်ပြန်ချက်များကိုအသုံးပြုသောအခါ MySQL ယာဉ်မောင်းသည်အနုတ်လက်ခဏာတန်ဖိုးများကိုပြန်ပို့နိုင်သည်။ MySQL သည်အခြေခံကျသောအလွှာမှမှန်ကန်သောအတန်းများမရနိုင်သောကြောင့်ဖြစ်သည်။
Sqlite : ရိုးရှင်းသောမေးမြန်းချက်အချို့ကို (ထိုကဲ့သို့သော Select ကဲ့သို့) အတွက် Rowcount သည် အတန်းများမပြန်လျှင်ပင် Rowcount သည်ဆိုးကျိုးများပြန်လာနိုင်သည်။
Postgresql : Postgresql သည်များသောအားဖြင့်အကျိုးသက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုမှန်ကန်စွာပြန်ပို့သည်။ ထို့ကြောင့်၎င်းသည်ယေဘုယျအားဖြင့်အနုတ်လက်ခဏာတန်ဖိုးများကိုမပေးပါ။
ကွဲပြားခြားနားသောဒေတာဘေ့စစနစ်များသည်ကွဲပြားခြားနားစွာ Regount ကို အကောင်အထည်ဖော်သည်။ ဥပမာအားဖြင့်, Selection Query ကိုကွပ်မျက်သည့်အခါ Rowcount သည်သက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုသာမကအမှန်တကယ်စကင်ဖတ်စစ်ဆေးသည်။ အချို့သောဒေတာဘေ့စ်စနစ်များတွင်ဤတန်ဖိုးသည်အနှုတ်လက်ခဏာအရေအတွက်ကိုမှန်ကန်စွာမထောက်ပံ့ကြောင်းညွှန်ပြသည့်အနုတ်လက်ခဏာနံပါတ်ဖြစ်နိုင်သည်။
ပထမ ဦး စွာသင်သည်မှန်ကန်သောဒေတာဘေ့စ်ယာဉ်မောင်းကိုအသုံးပြုနေသည်ကိုသေချာအောင်လုပ်ပါ။ ကွဲပြားခြားနားသောဒေတာဘေ့စ်ယာဉ်မောင်းများသည်မတူကွဲပြားသောရလဒ်များကိုပြန်ပို့ရန် Rowcount ကို ဖြစ်ပေါ်စေသည်။ PHP တွင် PDO ကိုအသုံးပြုသောအခါသင်လက်ရှိအသုံးပြုထားသောဒေတာဘေ့စ်ကားမောင်းသူကို GetATTRATY (PDO :: Att_Dr_driver_NAME) ကို ရနိုင်သည်။ ဥပမာအားဖြင့်:
echo $pdo->getAttribute(PDO::ATTR_DRIVER_NAME);
MySQL သို့မဟုတ်အခြားဒေတာဘေ့စ်ကိုအသုံးပြုနေပါကသင့်တော်သောယာဉ်မောင်းတစ် ဦး သို့ပြောင်းပါ။
Rowcount သည် အနှုတ်တန်ဖိုးရရှိသောအခြေအနေကိုသင်ကြုံတွေ့ရပါက, ဥပမာအားဖြင့်, Delete သို့မဟုတ် update လုပ်ခြင်း လုပ်ငန်းများအတွက်ထိခိုက်သောအတန်းအရေအတွက်ကိုကိုယ်တိုင်တွက်ချက်နိုင်သည်။ ဥပမာအားဖြင့်, ဆက်စပ်အချက်အလက်များကိုပြောင်းလဲရန်ပြောင်းလဲရန် Select Count (*) ကို လုပ်ဆောင်ပါ -
$stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE age > 18");
$stmt->execute();
$rowCount = $stmt->fetchColumn();
echo $rowCount; // သတ်မှတ်ချက်များနှင့်ကိုက်ညီသောအတန်းအရေအတွက် output ကို
SQL ကြေညာချက်ကိုယ်တိုင်မှန်ကန်ကြောင်းသေချာစေပြီးတစ်ခါတစ်ရံမှားယွင်းသောမေးမြန်းခြင်းသို့မဟုတ်ကွပ်မျက်မှုပြ problems နာများသည် Rowcount ကို အပျက်သဘောဆောင်သောတန်ဖိုးကိုပြန်ပေးနိုင်သည်။ သင်သည်အခြားအလားအလာရှိသောအမှားများကိုချွင်းချက်ဖြင့်စစ်ဆေးနိုင်သည်။
try {
$stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE age > 18");
$stmt->execute();
echo $stmt->rowCount();
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Rowcount သည် အနုတ်လက်ခဏာတန်ဖိုးများကိုပြန်ပို့သောဖြစ်ရပ်များအတွက်သင်စိတ်ကြိုက်အမှားကိုင်တွယ်သည့်ယုတ္တိဗေဒကိုရေးနိုင်သည်။ ပြန်လာတန်ဖိုးသည်အနှုတ်လက်ခဏာနံပါတ်ဖြစ်သည်ကိုသင်စစ်ဆေးနိုင်သည်။ အကယ်. ၎င်းသည်အနုတ်လက်ခဏာနံပါတ်တစ်ဖြစ်ပါက, သက်ဆိုင်ရာအချက်ပေးအချက်အလက်များကိုထုတ်ပြန်ခြင်းသို့မဟုတ်သတ်သတ်မှတ်မှတ်လိုအပ်ချက်များနှင့်အညီအခြားအစီအမံများကိုယူပါ။
$rowCount = $stmt->rowCount();
if ($rowCount < 0) {
echo "Error: Row count returned a negative value.";
} else {
echo "Rows affected: $rowCount";
}
PDostatement :: Rowcount Regrocount Reglute Value သည်အနှုတ်လက်ခဏာတန်ဖိုးများကိုပြန်လည်ရရှိခြင်းသည်များသောအားဖြင့်ဒေတာဘေ့စ်ကားမောင်းသူ, SQL လည်ပတ်မှုနှင့်အကောင်အထည်ဖော်မှုအပေါ်မူတည်သည်။ ဤပြ problem နာကိုရှောင်ရှားရန် developer များအနေဖြင့်ဘေးဒဏ်သင့်သည့်အတန်းအရေအတွက်ကိုရရှိရန်သို့မဟုတ်ခြွင်းချက်ဖမ်းခြင်းနှင့်အမှားကိုင်တွယ်မှုယန္တရားများကို အသုံးပြု. အခြားနည်းလမ်းများကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။ ယာဉ်မောင်းကိုစစ်ဆေးခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကျိုးကြောင်းဆီလျော်သော query method ကိုရွေးချယ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အနုတ်လက်ခဏာတန်ဖိုးများ၏ဖြစ်ပျက်မှုများကိုလျှော့ချပြီး code ကိုကြံ့ခိုင်မှုကိုသေချာအောင်လုပ်နိုင်သည်။