လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement မှတစ်ဆင့်အတန်းများ -: rowcount ဆုံးဖြတ်ချက်ချခြင်း

PDostatement မှတစ်ဆင့်အတန်းများ -: rowcount ဆုံးဖြတ်ချက်ချခြင်း

gitbox 2025-05-28

ဒေတာဘေ့စ်ကိုအသုံးပြုမည့် PHP ကိုအသုံးပြုသောအခါ SQL ကြေငြာချက်တစ်ခုအပြီးတွင်၎င်းသည်အချက်အလက်မည်မျှသက်ရောက်မှုရှိသည်ကိုကျွန်ုပ်တို့မကြာခဏသိရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, မွမ်းမံခြင်း , ဖျက်ခြင်း သို့မဟုတ်အချို့ ထည့်သွင်းခြင်း လုပ်ဆောင်မှုများပြုလုပ်သောအခါထိခိုက်နစ်နာသောအတန်းအရေအတွက်ကိုနားလည်ခြင်းသည်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိကိုဆုံးဖြတ်ရန်ကူညီသည်။

ဤအချိန်တွင် pdostatement :: Rowcount () function သည်အသုံးဝင်သည်။ ဤဆောင်းပါးသည် Rowcount () နည်းလမ်းကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီးအတန်းအရေအတွက်အပေါ် အခြေခံ. ခြွင်းချက်စီရင်ချက်ချသည့်အခြေအနေများမည်သို့ပြုလုပ်ရမည်ကိုသရုပ်ပြရန်အမှန်တကယ်ကုဒ်နမူနာများဖြင့်ပေါင်းစပ်ပါလိမ့်မည်။

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

RORCOUT () သည် PDostatement လူတန်းစား၏နည်းလမ်းတစ်ခုဖြစ်ပြီးနောက်ဆုံးကွပ်မျက်ခံရသော SQL ထုတ်ပြန်ကြေညာချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤလုပ်ဆောင်ချက်၏ပြန်လည်တန်ဖိုးကိုများသောအားဖြင့်ဒေတာကိုအမှန်တကယ် update လုပ်ခြင်းသို့မဟုတ်ဖျက်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။

 public int PDOStatement::rowCount();

မှတ်ချက် - အထူးသဖြင့်ကွဲပြားခြားနားသောဒေတာဘေ့ ်ယာဉ်မောင်းများအောက်တွင်အနည်းငယ်ကွဲပြားစွာကွဲပြားခြားနားနိုင်သည်။

2 ။ အခြေခံအသုံးပြုမှုနည်းလမ်း

အောက်ဖော်ပြပါသည်အသုံးပြုသူအချက်အလက်များကိုဒေတာဘေ့စ်တွင်မွမ်းမံခြင်းဥပမာတစ်ခုဖြစ်သည်။ SQL ကိုကွပ်မျက်ပြီးနောက်ကျွန်ုပ်တို့သည် RORCOUT () ကို အသုံးပြုသည်။ မည်သည့်ဒေတာကိုမဆိုပြုပြင်မွမ်းမံခြင်းရှိမရှိဆုံးဖြတ်ရန်။

 <?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှုသတင်းအချက်အလက်
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$username = 'dbuser';
$password = 'dbpass';

try {
    // ဖန်တီး PDO နမူနာ
    $pdo = new PDO($dsn, $username, $password);

    // ခြွင်းချက်အမှားကိုင်တွယ်ရန်သတ်မှတ်ပါ
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // ပြင်ဆင်ထား SQL ကြေညာချက်ထုတ်ပြန်ချက်
    $sql = "UPDATE users SET email = :email WHERE id = :id";
    $stmt = $pdo->prepare($sql);

    // parameters တွေကိုချည်ထား
    $stmt->bindValue(':email', '[email protected]');
    $stmt->bindValue(':id', 1);

    // Execution ကြေငြာချက်
    $stmt->execute();

    // ထိခိုက်သောအတန်းအရေအတွက်ကိုရယူပါ
    $affectedRows = $stmt->rowCount();

    // ခြွင်းချက်တရားသဖြင့်စီရင်
    if ($affectedRows > 0) {
        echo "အသုံးပြုသူသတင်းအချက်အလက်ကိုအသစ်ပြောင်းထားသည်,စုစုပေါင်းသက်ရောက်မှု {$affectedRows} အိုကေ。";
    } else {
        echo "အသုံးပြုသူသတင်းအချက်အလက်ကိုပြုပြင်မွမ်းမံထားသည်,ဖြစ်ကောင်းဒေတာကိုမပြောင်းလဲဘူးသောကြောင့်。";
    }

} catch (PDOException $e) {
    echo "ဒေတာဘေ့စ်အမှား:" . $e->getMessage();
}
?>

3 ။ ဘုံအခြေအနေများနှင့်အသုံးပြုမှုနည်းစနစ်များ

1 ။ ပယ်ဖျက်ခြင်းစစ်ဆင်ရေးပြီးနောက်ဖျက်ခြင်းအရေအတွက်ကိုအတည်ပြုပါ

 $sql = "DELETE FROM users WHERE last_login < NOW() - INTERVAL 1 YEAR";
$stmt = $pdo->prepare($sql);
$stmt->execute();

if ($stmt->rowCount() > 0) {
    echo "မလှုပ်မရှားမဆိုသုံးစွဲသူကိုအောင်မြင်စွာပယ်ဖျက်ပြီးပါပြီ。";
} else {
    echo "ဖျက်ပစ်ရန်အသုံးပြုသူမရှိပါ。";
}

2 ။ သွင်းအပြီးအပြီး insertion အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ

အချို့သောဒေတာဘေ့စ် (ဥပမာ MySQL) ကဲ့သို့ RORCOUT () ကို အသုတ်အပြီးပြန်လာရန်ခွင့်ပြုသည်။

 $sql = "INSERT INTO logs (message, created_at) VALUES 
       ('ခဲှစိတ်ကုသ1', NOW()), 
       ('ခဲှစိတ်ကုသ2', NOW())";
$stmt = $pdo->prepare($sql);
$stmt->execute();

if ($stmt->rowCount() >= 2) {
    echo "သစ်လုံးများကိုသုတ်ခြင်းဖြင့်ရေးသားထားသည်。";
} else {
    echo "Log Write မအောင်မြင်ပါသို့မဟုတ်မပြည့်စုံပါ。";
}

4 ။ မှတ်စုများ

  1. Select Selecties အတွက် RORCOUT () အပြုအမူသည်မသေချာမရေရာ ပါ

  2. မှန်ကန်သောဒေတာဘေ့စ်ယာဉ်မောင်းကိုအသုံးပြုခြင်း - အချို့သောဒေတာဘေ့စ် (ဥပမာ SQLite) သည်အချို့သောစစ်ဆင်ရေးများတွင် RORCOUT () ကိုအကန့်အသတ်ဖြင့်သာရှိသည်။

  3. Rowcount () ကိုအောင်မြင်စွာလုပ်ဆောင်မှုတစ်ခုတည်းသောလက်ခဏာအဖြစ်မမှားပါ - ၎င်းသည် "ထိခိုက်နစ်နာသောအတန်းအရေအတွက်" ကိုသာဆိုလိုသည်။