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

PDostatement :: Rowcount ကိုမည်သို့ဖြည့်ဆည်းပေးနိုင်ပါမည်

gitbox 2025-05-28

PHP ကိုအသုံးပြုပြီးဒေတာဘေ့စ်များကိုလည်ပတ်သည့်အခါ PDO သည် စည်းလုံးညီညွတ်သော, ပြောင်းလွယ်ပြင်လွယ်။ လုံခြုံသော interface ကိုပေးရန်နည်းလမ်းဖြစ်သည်။ ၎င်းတို့အနက် PDostatement :: Rowcount () နည်းလမ်းကို SQL operations များမှ ထိခိုက်သောအတန်း များ ရရှိရန်အသုံးပြုသည်။ သို့သော်၎င်းသည်ကွဲပြားခြားနားသောကြေငြာအမျိုးအစားများတွင်အနည်းငယ်ကွဲပြားစွာ ပြုမူ သည် ဤဆောင်းပါးသည်သာမန်လူများနားလည်မှုလွဲမှားခြင်းများကိုမည်သို့ရှောင်ရှားရမည်ကိုအဓိကထားသည်။

1 ။ rowcount ၏ rowcount ၏သက်ဆိုင်မှု () ထည့်သွင်းရန်

များသောအားဖြင့်ကျွန်ုပ်တို့သည်ထည့်သွင်းမှုပြုလုပ်ပြီးနောက်မည်သည့်လိုင်းများကိုအောင်မြင်စွာဖြည့်ဆည်းနိုင်ကြောင်းကျွန်ုပ်တို့သိလိုသည်။

 $pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);

$stmt->bindValue(':name', 'Alice');
$stmt->bindValue(':email', '[email protected]');
$stmt->execute();

echo $stmt->rowCount(); // မျှော်လင့်ထားသည့် output ကို:1

များသောအားဖြင့်အထူးသဖြင့် MySQL ကို အသုံးပြုသော အခါ Rowcount ( များသောအားဖြင့် 1) ကိုမှန်ကန်စွာပြန်ပို့သည်။ ဒါပေမယ့်သင်က cross-database လိုက်ဖက်တဲ့ ကိုဂရုစိုက်မယ်ဆိုရင်သတိထားရမယ်။

2 ။ အသုတ်သွင်းစဉ်အတွင်း strcount အပြုအမူ

အောက်ပါသုတ်စာရင်းများအဘို့အ:

 $sql = "INSERT INTO users (name, email) VALUES 
        ('Bob', '[email protected]'), 
        ('Charlie', '[email protected]')";
$stmt = $pdo->prepare($sql);
$stmt->execute();

echo $stmt->rowCount(); // တည်နေ MySQL နောက်ပုံမှန်အားဖြင့်ပြန်လာ 2

Rowcount () သည် 2 ကိုပြန်ရလိမ့်မည်ဖြစ်သော်လည်း ၎င်းကိုဒေတာဘေ့စ်ကားမောင်းသူများနှင့် Postgresql, SQLite နှင့်အခြားဒေတာဘစများတွင်အမြဲတမ်းမထောက်ပံ့ပါ

တရားဝင်စာရွက်စာတမ်းများ

ဥပမာအချို့ဒေတာဘေ့စ်များအတွက် Postgresql () အတွက် Regcount () အမျိုးအစား ထည့်သွင်းမှု ၏ထုတ်ပြန်ချက်များအတွက်တန်ဖိုးများကိုပြန်ပို့သည်။

ဒါကြောင့်သင် RORCOUT () ကို အသုံးပြုလိုပါက Cross-platform ပလက်ဖောင်းဝန်းကျင်တွင်ထည့်သွင်းရန်လုံခြုံစွာအသုံးပြုလိုပါကသေချာစွာလုပ်ပါ။

  • ဤအင်္ဂါရပ်ကိုအထောက်အပံ့ပေးသောဒေတာဘေ့စ်ယာဉ်မောင်းကိုသုံးပါ။

  • ပုံတူသော့ကိုမိတ္တူကူးခြင်းသို့မဟုတ်ပြန်လာသည့်ဝါကျများကိုမှီခိုခြင်းမပြုဘဲစံထည့်သွင်းထားသောဖော်ပြချက်များကိုသုံးပါ (ဒေတာဘေ့စ်သည်သူတို့ကိုမထောက်ခံပါက) ။

3 ။ ဝေဒနာခံစားနေရသည့်အတန်းအရေအတွက်ကိုပိုမိုလုံခြုံစွာထားနိုင်ပုံ။

ဤတွင်အချို့သောလက်တွေ့ကျသောအကြံပြုချက်များမှာ -

1 ။ PDO + MySQL ကိုသင်အသုံးပြုနေကြောင်းသေချာပါစေ

လက်ရှိပတ်ဝန်းကျင်သည် MySQL (သို့) သဟဇာတဖြစ်သော drivers များကို အသုံးပြု. RORGOUT ၏ပြန်လာတန်ဖိုးသည်အဓိပ္ပါယ်ရှိသောဖြစ်သည်။

 if ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME) === 'mysql') {
    echo "အောင်မြင်စွာထည့်ပါ,အတန်း၏နံပါတ်သွဇာလွှမ်းမိုးမှု:" . $stmt->rowCount();
} else {
    echo "မဟုတ် MySQL ဒေတာဘေ့စ်,rowCount() ရလဒ်များမတိဖြစ်နိုင်သည်";
}

2 ။ တစ်လိုင်းသွင်းသည်အတွက် RORCOUT () ကိုအသုံးပြုရန်လုံခြုံသည်။

ယာဉ်မောင်းအများစုသည်ဘေးဒဏ်သင့်သည့်အတန်းတစ်ခုအတွက် 1 တန်းတစ်မျိုးတည်းကိုပြန်လည်ထည့်သွင်းရန်အကြံပြုသည်။

3 ။ Multi-line ထည့်သွင်းရန်အတွက်ငွေပေးငွေယူများကိုကွင်းဆက်သို့အသုံးပြုရန်အကြံပြုသည်

 $pdo->beginTransaction();
$total = 0;

$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$data = [
    ['name' => 'David', 'email' => '[email protected]'],
    ['name' => 'Eve', 'email' => '[email protected]']
];

foreach ($data as $row) {
    $stmt->execute($row);
    $total += $stmt->rowCount();
}

$pdo->commit();

echo "စုစုပေါင်းထည့်သွင်း $total အိုကေ";

တစ်ခုတည်းသောသွင်းပွဲကွင်းဆက်တစ်ခုမှတဆင့်သင် Rowcount () သည်ယာဉ်မောင်းတစ်ခုစီအောက်၌တသမတ်တည်းပြုမူရန်သေချာစေနိုင်သည်။

4 ။ ဘုံနားလည်မှုလွဲမှားခြင်း၏အကျဉ်းချုပ်

အလစာမမှားခြင်း ဥပမာပြပါ
ဒေတာဘေ့စ်အားလုံးသည် rowcount () ထည့်သွင်းထားသောအတန်းအရေအတွက်ကိုပြန်ပို့ရန်ထောက်ခံသည်ဟုယုံကြည်ကြသည် တကယ်တော့ postgresql နှင့် sqlite 0 င်ပြန်လာလိမ့်မည်
အသုတ်ထည့်သွင်းသည့်အခါယုံကြည်မှု Rowcount () Non-MySQL ပတ်ဝန်းကျင်တွင်တိကျနိုင်သည်
ထည့်သွင်းအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် Rowcount () ကို သုံးပါ အမှားကိုင်တွယ်သည့်ယန္တရားနှင့်ပူးပေါင်းရန် Boolean Return Value () execute () ကိုအသုံးပြုခြင်းသည် ပို. ကောင်းသည်

5 ။ အခြားရွေးချယ်စရာဖြေရှင်းချက် - last_insert_id () ကိုသုံးပါ။

ထည့်သွင်းထားသောမူလတန်းသော့ချက် ID (အထူးသဖြင့် autoincroxement key key) ကိုသာဂရုစိုက်ပါကသင်အသုံးပြုနိုင်သည်။

 $pdo->lastInsertId();

မှတ်စု: အော်တို incount conscent keys များနှင့်အတူတစ်ခုတည်းအတန်းနှင့်စားပွဲများထည့်သွင်းရန်သာသင့်လျော်သော။

6 ။ အကျဉ်းချုပ်

PDostatement :: Rowcount () သည်မတူညီသောဒေတာဘေ့စ်များအကြားအနည်းငယ်ကွဲပြားခြားနားသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ထည့်သွင်းမှုသို့ 0 င် ရောက်သောအတန်းအရေအတွက်ကိုရရှိရန်၎င်းကိုအသုံးပြုသောအခါ၎င်းကိုအကြံပြုသည် -

  • MySQL ပတ်ဝန်းကျင်တွင်အသုံးပြုရန် ဦး စားပေးထားသည်။

  • Batch Instention အတွက်အရောင်းအ 0 ယ်များကိုအသုံးပြုရန်ပိုမိုလုံခြုံသည်။

  • ဒေတာဘေ့စ်ကွဲပြားသောအခြေအနေများတွင် Rightcount () အပေါ်မှီခိုခြင်းကိုရှောင်ရှားရန်ဒေတာဘေ့စ် - တိကျသော ပြန်လာ သို့မဟုတ်အခြားအင်္ဂါရပ်များကိုအသုံးပြုရန်စဉ်းစားသင့်သည်။

PDO အလေ့အကျင့်ဥပမာများကိုပိုမိုကြည့်ရှုရန် https://gitbox.net/docs/pdo သို့ဝင်ရောက်ပါ။