PDostatement :: Rowcount () Regount () ပြန်လာ 0 သည်များသောအားဖြင့်အောက်ပါရှုထောင့်များနှင့်ဆက်နွှယ်သည်။
ကိုက်ညီမှုမရှိပါဒေတာမရှိပါ - ကွပ်မျက်ခံရသည့်စုံစမ်းမှုအခြေအနေများတွင်ကိုက်ညီမှုမရှိပါ။
ဒေတာဘေ့စ်များမှထောက်ပံ့သောကန့်သတ်ချက်များ - အချို့သောဒေတာဘေ့စ်များ (ဥပမာ MySQL ကဲ့သို့သော) သည် Rowcount () ၏တန်ဖိုးကို ရွေးချယ်ထားသော မေးမြန်းချက်များကိုအထူးသဖြင့် ရွေးချယ်သည့် စစ်ဆင်ရေးများကိုအသုံးပြုသော queries များအတွက်အမြဲတမ်းမွမ်းမံနိုင်ပါ။
Query Type အမျိုးအစားကွာခြားချက် - ထုတ်ပြန်ချက်များကို ထည့်သွင်းခြင်း , update လုပ်ခြင်း နှင့် ဖျက်ခြင်း အတွက် Regcount () သည် ပြုပြင်ထားသောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ ရွေးချယ်မှု ထုတ်ပြန်ချက်များအတွက်၎င်း၏စွမ်းဆောင်ရည်သည်ဒေတာဘေ့စ်၏အကောင်အထည်ဖော်မှုအပေါ်မူတည်သည်။
ထို့ကြောင့်ရှာဖွေမှုသည်အောင်မြင်မှုရှိ, မရှိဆုံးဖြတ်သည့်အခါ developer များက logcount () သည်ကျိုးကြောင်းဆီ လျော် သောတရားစီရင်ခြင်းအတွက်တိုက်ရိုက်မှီခိုအားထားခြင်းကိုရှောင်ကြဉ်သင့်သည်။
Select Selecties အတွက် rowcount () 0 0 ပြန်လာလျှင်, ရှာဖွေမှုရလဒ်များမှန်ကန်မှုရှိစေရန်အချက်အလက်များမှန်ကန်မှုရှိစေရန်အချက်အလက်များတည်ရှိနေသောရလဒ်များကိုပြန်လည်ရယူခြင်းကိုစစ်ဆေးခြင်းအားဖြင့် (ထိုကဲ့သို့သောအချက်အလက်များရယူခြင်း ) method ကိုရယူခြင်း ) ကိုစစ်ဆေးခြင်းအားဖြင့်အချက်အလက်များတည်ရှိသည်ကိုသင်စစ်ဆေးနိုင်သည်။
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute([':email' => '[email protected]']);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result) {
// အောင်မြင်သောနှင့်ဒေတာကိုရှာဖွေမေးမြန်းခြင်း
echo "User found: " . $result['name'];
} else {
// စုံစမ်းမှုအတွက်ရလဒ်မရှိပါ
echo "No user found with that email.";
}
ဤကုဒ်တွင် fetch () ပထမစာကြောင်းနှင့်ကိုက်ညီသောရလဒ်ကိုပြန်ပို့လိမ့်မည်။ ကိုက်ညီသောမှတ်တမ်းမရှိပါက မှားယွင်းသော ပြန်လာသည်။ 0 င်သည် 0 င်သည် ။
အချို့သောအခြေအနေများအတွက်သင်သည်မေးခွန်းများတွင်ရလဒ်များရှိ, မရှိကိုသာဂရုစိုက်နိုင်သည်။ ယခုအချိန်တွင် PDO :: FETT_CONNONE သည် စုံစမ်းမှုထိရောက်မှုကိုအကောင်းဆုံးဖြစ်စေရန်အသုံးပြုနိုင်သည်။ ၎င်းသည်ရလဒ်အပြည့်အစုံထက်စွမ်းဆောင်ရည်တိုးတက်လာခြင်းထက်၎င်းသည်ရှာဖွေနေသည့်အချက်အလက်များ၏ကော်လံတစ်ခုသာပြန်လာလိမ့်မည်။
$sql = "SELECT COUNT(*) FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute([':email' => '[email protected]']);
$count = $stmt->fetchColumn();
if ($count > 0) {
echo "User exists.";
} else {
echo "No user found with that email.";
}
ဤနည်းအားဖြင့် Query ထိရောက်မှုကိုတိုးတက်ကောင်းမွန်အောင်ပြုလုပ်ပေးသည်။
Selected query ကိုကွပ်မျက်သည့်အခါ, အထူးသဖြင့်အပိုဒ်များပါ 0 င်သည့် နေရာများတွင် ( အီးမေးလ် , အသုံးပြုသူအမည် စသည်တို့) ပါ 0 င်သည့်နေရာများတွင် (ဥပမာအီးမေးလ်, အသုံးပြုသူအမည်စသည်တို့), အညွှန်းကိန်းများသည်စုံစမ်းမှု၏ထိရောက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
CREATE INDEX idx_email ON users (email);
ဤနည်းအားဖြင့်ဒေတာဘေ့စ်သည်ကိုက်ညီသည့်မှတ်တမ်းများကိုလျင်မြန်စွာရှာဖွေနိုင်ပြီး,
ဒေတာဘေ့စ်မေးမြန်းချက်များကိုပြုပြင်သည့်အခါအထူးသဖြင့် Dataset တစ်ခုလုံးကိုလည်ပတ်သောအခါမလိုအပ်သောမေးမြန်းချက်များကိုရှောင်ရှားရန်ကြိုးစားပါ။ ဥပမာအားဖြင့် Select * ကို မသုံးပါနှင့်, မလိုအပ်သောဒေတာလွှဲပြောင်းခြင်းနှင့်ပြုပြင်ခြင်းကိုလျှော့ချရန်မေးမြန်းရမည့်ကော်လံများကိုအတိအလင်းဖော်ပြပါ။
$sql = "SELECT id, name FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute([':email' => '[email protected]']);
ဤနည်းလမ်းသည်စုံစမ်းမှုမြန်နှုန်းကိုတိုးတက်အောင်သာမက Memory အသုံးပြုမှုကိုလျော့နည်းစေသည်။
မိတ္တူကူးခြင်းများ, မွမ်းမံမှုများသို့မဟုတ်ဖျက်ခြင်းများကိုပြုလုပ်သောအခါ၎င်းကိုငွေပေးချေမှုတစ်ခုတွင်၎င်းတို့ကိုခြုံရန်အကြံပြုသည်။ ၎င်းသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုအရေအတွက်ကိုလျှော့ချပြီးဒေတာဘေ့စ်လုပ်ငန်း၏ထိရောက်မှုကိုတိုးတက်စေလိမ့်မည်။
try {
$pdo->beginTransaction();
$stmt = $pdo->prepare("UPDATE users SET status = :status WHERE id = :id");
$stmt->execute([':status' => 'active', ':id' => 1]);
$stmt->execute([':status' => 'active', ':id' => 2]);
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
echo "Failed: " . $e->getMessage();
}
မျိုးစုံစစ်ဆင်ရေးများကိုတူညီသောငွေလွှဲခြင်းဖြင့်ထုပ်ပိုးခြင်းအားဖြင့်ဒေတာဘေ့စ်ပေါ်ရှိဝန်ကိုလျှော့ချသည်။
အချက်အလက်အမြောက်အများပါ 0 င်သောရှာဖွေမှုများအတွက် paging မေးမြန်းချက်များကိုအသုံးပြုခြင်းသည်စုံစမ်းမှုတစ်ခုတည်းတွင်အချက်အလက်ပမာဏကိုထိထိရောက်ရောက်လျှော့ချနိုင်သည်။ မှတ်တမ်းများကိုကန့်သတ်ခြင်းနှင့် ကန့်သတ်ခြင်း နှင့် အဆင်သင့်များကို အသုံးပြုခြင်းဖြင့် Pagination ကိုရရှိနိုင်ပါသည်။
$sql = "SELECT * FROM users LIMIT :limit OFFSET :offset";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':limit', 10, PDO::PARAM_INT);
$stmt->bindValue(':offset', 0, PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
ဤနည်းလမ်းသည်အချက်အလက်များစွာနှင့်တစ်ပြိုင်နက်တည်းတင်ခြင်းကိုရှောင်ရှားနိုင်ပြီးစနစ်၏တုန့်ပြန်မှုမြန်နှုန်းကိုသေချာစေသည်။