လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement :: Tave-Table Multi-table join query query ၏နောက်ဆုံးသတင်းသက်ရောက်မှုကိုအတည်ပြုရန် Rowcount ကိုသုံးပါ

PDostatement :: Tave-Table Multi-table join query query ၏နောက်ဆုံးသတင်းသက်ရောက်မှုကိုအတည်ပြုရန် Rowcount ကိုသုံးပါ

gitbox 2025-05-28

PHP ကို ​​အသုံးပြု. ဒေတာဘေ့စ်မောင်းနှင်သည့်အပလီကေးရှင်းများကိုတီထွင်သောအခါ PDO သည် ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်ရန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းကိုပေးသည်။ အထူးသဖြင့် မွမ်းမံမှုများ ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါ developer များသည် pdostatement :: Rowcount () ကို မည်သည့်မှတ်တမ်းမဆိုမည်သည့်မှတ်တမ်းမဆိုအတည်ပြုရန်မကြာခဏအသုံးပြုကြသည်။ သို့သော်, စားပွဲပေါင်းစုံပါဝင်သောလုပ်ငန်းများကိုအဆင့်မြှင့်တင်ရန်အတွက် rowcount ၏အပြုအမူသည်အချို့နှင့်ရှုပ်ထွေးနိုင်သည်။

PDostatement :: Rowcount () ကို မည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုလေ့လာပါလိမ့်မည်။

PDostatement ဆိုတာဘာလဲ :: Rowcount ()

PDostatement :: Rowcount () သည် PDO မှ ပယ်ဖျက်ခြင်း , ဥပမာအားဖြင့်:

 $stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE last_login >= :lastLogin");
$stmt->execute([':lastLogin' => '2025-01-01']);
echo $stmt->rowCount(); // ထိခိုက်သောအတန်းအရေအတွက် output

တစ်ခုတည်းသောစားပွဲတင်ဆင်ရေးလုပ်ငန်းများအတွက်ဤနည်းလမ်းသည်များသောအားဖြင့်အကျိုးသက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုတိကျစွာပြန်ပို့နိုင်လေ့ရှိသည်။ သို့သော် Multi-table အသစ်ပြောင်းခြင်းများအတွက်၎င်းတို့၏အပြုအမူသည်ဒေတာဘေ့စ်များကို အခြေခံ. မောင်းနှင်ခြင်းဖြင့်အကောင်အထည်ဖော်မှုကွဲပြားမှုများကြောင့်၎င်းတို့၏အပြုအမူကိုထိခိုက်လိမ့်မည်။

Multi-Table Connection Update အခြေအနေ

MySQL သည် Table အသစ် update ကို စစ်ဆင်ရေးများကိုထောက်ပံ့သည်။

 UPDATE users u
JOIN logins l ON u.id = l.user_id
SET u.status = 'active'
WHERE l.last_login >= '2025-01-01';

PHP တွင်အလားတူ update ကိုလုပ်ဆောင်ရန် PDO ကိုအသုံးပြုခြင်းသည်ဤကဲ့သို့သောရေးသားနိုင်ပါသည်။

 $sql = "
    UPDATE users u
    JOIN logins l ON u.id = l.user_id
    SET u.status = 'active'
    WHERE l.last_login >= :lastLogin
";

$stmt = $pdo->prepare($sql);
$stmt->execute([':lastLogin' => '2025-01-01']);

echo "ထိခိုက်အတန်းအရေအတွက်: " . $stmt->rowCount();

မှတ်စုများ

  1. Multi-table update များကိုမထောက်ပံ့ပါ ။ ဥပမာ Postgresql သည် Multgresql သည် Multipi-table update ကို မထောက်ပံ့ပါ။

  2. အမှန်တကယ်ပြုပြင်ထားသောအတန်းများကိုသာရေတွက်ပါ ။ အချက်အလက်တန်း သည် အခြေအနေ နှင့်ကိုက်ညီပါက, တန်ဖိုးအသစ်သည်မူလတန်ဖိုးနှင့်အတူတူဖြစ်သည်

  3. ဒေတာဘေ့စ်ယာဉ်မောင်းခြားနားချက် - အချို့သောဒေတာဘေ့စ်များနှင့်ယာဉ်မောင်းများသည်ထိခိုက်နစ်နာသောအတန်းအရေအတွက်ကိုတိကျစွာပြန်ပို့ခြင်းသို့မဟုတ်ပြန်လာခြင်း၏ semantics သည်ကွဲပြားခြားနားသည်။ ဥပမာအားဖြင့် MySQL ၏ဗားရှင်းအချို့ (သို့မဟုတ်တိကျသော SQL ပုံစံကိုဖွင့်ခြင်း) သည်လိုက်လျောညီထွေရှိသောအတန်းများအားလုံးကိုပြောင်းလဲခြင်းထက်လိုက်လျောညီထွေရှိသောအတန်းများအားလုံးကိုပြန်ပို့နိုင်သည်။

ဘယ်လိုအတည်ပြုခြင်းနှင့် debug လုပ်နည်း

ဥပမာအားဖြင့် SQL သို့ရလဒ်များကိုယာယီထပ်ဖြည့်စွက်ခြင်းအားဖြင့် debugging ကိုကူညီနိုင်သည်။

 $sql = "
    UPDATE users u
    JOIN logins l ON u.id = l.user_id
    SET u.status = 'active'
    WHERE l.last_login >= :lastLogin
";

$stmt = $pdo->prepare($sql);
$stmt->execute([':lastLogin' => '2025-01-01']);
$affected = $stmt->rowCount();

if ($affected > 0) {
    echo "အောင်မြင်စွာ updated {$affected} စံချိန်。";
} else {
    echo "အဘယ်သူမျှမမှတ်တမ်းများကိုမွမ်းမံပါပြီ。ပစ်မှတ် status သို့မဟုတ်အခြေအနေမတိုက်ဆိုင်မရှိမရှိစစ်ဆေးပါ。";
}

နမူနာမြင်ကွင်း - ဝက်ဘ်ဆိုက်အသုံးပြုသူ status ကို Refresh

သင် https://gitbox.net တွင်တည်ရှိသော 0 က်ဘ်ဆိုက်ကိုထိန်းသိမ်းထားပြီးလတ်တလော log in လုပ်ထားသောအသုံးပြုသူများကို 0 င်ရောက်ရန်လိုအပ်သည်ဆိုပါစို့။

 $pdo = new PDO('mysql:host=localhost;dbname=mydb', 'user', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "
    UPDATE users u
    JOIN logins l ON u.id = l.user_id
    SET u.status = 'active'
    WHERE l.last_login >= CURDATE() - INTERVAL 30 DAY
";

$stmt = $pdo->prepare($sql);
$stmt->execute();

echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း,ထိခိုက်လွယ်သောအသုံးပြုသူများအရေအတွက်: " . $stmt->rowCount();

Rowcount () ကို Rowcount () ၏တန်ဖိုးကိုမှတ်တမ်းတင်ခြင်းသို့မဟုတ်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိအတွက်အခြေခံအဆုံး Interface သို့ပြန်လည်ရောက်ရှိနိုင်သည်။

ကောက်ချက်

PDostatement :: Rowcount () သည်၎င်း၏အမူအကျင့်ဆိုင်ရာလက္ခဏာများနှင့်ကန့်သတ်အခြေအနေများနှင့် ပတ်သက်. ရှင်းရှင်းလင်းလင်းဖော်ပြထားသည့်အတိုင်းစားပွဲတင်မွမ်းမံမှုများပြုလုပ်ရာတွင်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ အသုံးပြုနေစဉ်အတွင်းဒေတာဘေ့စ်သည်သက်ဆိုင်ရာ SQL features များကိုထောက်ပံ့ပေးပြီးအချက်အလက်ရှေ့နောက်ညီညွတ်မှုနှင့်တိကျသောတုံ့ပြန်ချက်များကိုသေချာစေရန်နောက်ထပ်ယုတ္တိဗေဒလိုအပ်ကြောင်းသေချာစွာစစ်ဆေးပါ။

သင်ခန်းစာများကိုသင်ပိုမိုကြည့်ရှုနိုင်ပြီးစားပွဲတင်မွမ်းမံမှုများနှင့်ပတ်သက်သည့်အကောင်းဆုံးအလေ့အကျင့်များကို https://gitbox.net/docs/pdo-update- မှာရှိသည်။