လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement မှတဆင့် SQL Execution Status ကိုရှာဖွေနည်း

PDostatement မှတဆင့် SQL Execution Status ကိုရှာဖွေနည်း

gitbox 2025-05-28

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

ဤဆောင်းပါးတွင် PDostatement ကိုမည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့ရှင်းပြပါမည် --: SQL Execution သည်အောင်မြင်မှုရှိမရှိနှင့်သက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုရယူရန်။

1 ။ PDostatement :: Rowcount function ကဘာလဲ။

PDostatement :: Rowcount function သည်ယခင်ကကွပ်မျက်ခံရသော SQL ထုတ်ပြန်ကြေငြာချက်အရထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤနည်းလမ်းသည်သက်ရောက်မှုရှိသောအတန်းအရေအတွက်ရရှိရန် ထည့်သွင်းခြင်း , မွမ်းမံခြင်း , ဖျက်ခြင်း ထုတ်ပြန်ချက်များအတွက်အလွန်သင့်လျော်သည်။

သတိပြုသင့်သည်မှာ Rowcount သည် SQL ထုတ်ပြန်ချက်များအားလုံးနှင့်သက်ဆိုင်ခြင်းမရှိပါ။ ဥပမာအားဖြင့် Selected appension တစ်ခုအတွက် Database Driver ပေါ် မူတည်. Rowcount သည် မှန်ကန်သောတန်ဖိုးကိုမပြန်ပါ။

2 ။ ဥပမာကိုသုံးပါ

နောက်တစ်ခါ PDostatement :: concroke ဥပမာတစ်ခုနှင့်မည်သို့အသုံးပြုရမည်ကိုပြပါလိမ့်မည်။

2.1 ဒေတာဘေ့စ်ဆက်သွယ်မှု

ပထမ ဦး စွာကျွန်ုပ်တို့သည် PDO ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်လိုအပ်သည်။ MySQL ဒေတာဘေ့စ်တစ်ခုကိုအသုံးပြုရန် MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုသည်ဆိုပါစို့, ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', 'password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

ဤကုဒ်တွင် ဒေါ်လာ PDO အမည်ရှိ PDO ဥပမာအားဖြင့် TestDB အမည်ရှိဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ။

2.2 နောက်ဆုံးအခြေအနေ ကြေညာချက်ကို execute

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

 <?php
$sql = "UPDATE users SET email = :email WHERE id = :id";
$stmt = $pdo->prepare($sql);

$email = '[email protected]';
$id = 1;

$stmt->bindParam(':email', $email);
$stmt->bindParam(':id', $id);

$stmt->execute();

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

2.3 Delete ကြေညာချက်ကို execute လုပ်ပါ

အလားတူစွာ ဖျက်ခြင်း သည်ထိခိုက်နစ်နာသောအတန်းအရေအတွက်ကိုရရန် Rowcount ကို သုံးနိုင်သည်။

 <?php
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);

$id = 2;
$stmt->bindParam(':id', $id);

$stmt->execute();

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

2.4 Insert ထုတ်ပြန်ချက် Execute လုပ်ပါ

Insert Statement အတွက် Rowcount သည် ဖြည့်စွက်ထားသောအတန်းအရေအတွက်ကိုပြန်လည်ရရှိခဲ့သည်။ အကယ်. စံချိန်တင်ကိုအောင်မြင်စွာဖြည့်စွက်ပါက 1 ပြန်ရောက်သည်။

 <?php
$sql = "INSERT INTO users (username, email) VALUES (:username, :email)";
$stmt = $pdo->prepare($sql);

$username = 'newuser';
$email = '[email protected]';

$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);

$stmt->execute();

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

3 ။ SQL ကွပ်မျက်မှုအောင်မြင်မှုရှိမရှိကိုရှာဖွေရန် RowCount ကို မည်သို့အသုံးပြုရမည်နည်း။

PDostatement ၏ပြန်လာတန်ဖိုး --: Rowcount သည် SQL ကိုအောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ပါသလား။ ပုံမှန်အားဖြင့်ကျွန်ုပ်တို့သည် insert ကိုထည့်သွင်းခြင်း , မွမ်းမံခြင်း ,

  • အကယ်. ပြန်လာသောတန်ဖိုးသည် 0 ထက်ကြီးပါက၎င်းသည်ခွဲစိတ်ကုသမှုသည်အောင်မြင်ပြီးအနည်းဆုံးအချက်အလက်များအနည်းဆုံးအတန်းသက်ရောက်မှုရှိသည်ဟုဆိုလိုသည်။

  • ပြန်လည်နေရာချထား မှုသည် 0 င်ဖြစ်ပါကဤစစ်ဆင်ရေးသည်မည်သည့်အချက်အလက်ကိုမဆိုအောင်မြင်စွာအကျိုးသက်ရောက်ရန်ပျက်ကွက်ကြောင်းဆိုလိုသည်။ (ဥပမာ, update သည် ကိုက်ညီမှုမရှိပါ,

3.1 SQL Execution သည်အောင်မြင်သောသို့မဟုတ်မရှိမရှိကိုစစ်ဆေးပါ

SQL ကြေငြာချက်ကိုအောင်မြင်စွာကွပ်မျက်ခံရသည်ကိုဆုံးဖြတ်ရန် Rowcount ကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
if ($stmt->rowCount() > 0) {
    echo "စစ်ဆင်ရေးအောင်မြင်သောဖြစ်ပါတယ်,ထိခိုက်အတန်းအရေအတွက်: " . $stmt->rowCount();
} else {
    echo "စစ်ဆင်ရေးပျက်ကွက်,အဘယ်သူမျှမဒေတာထိခိုက်";
}
?>

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

  • Select selected ထုတ်ပြန်ချက်များအတွက် Rowcount ၏တန်ဖိုးသည်ဒေတာဘေ့စ်ယာဉ်မောင်းပေါ် မူတည်. ပြန်လာသောအတန်းအရေအတွက်ကိုမှန်ကန်စွာမထင်မှတ်ပါ။ ထို့ကြောင့် Rowcount သည်အဓိကအားဖြင့်လုပ်ငန်းများကို ထည့် သွင်း ခြင်း ,

  • အချို့ကိစ္စများတွင် Rowcount သည် 0 င်ပြန်ပို့နိုင်သည်။ သို့သော်၎င်းသည် SQL ကြေညာချက်ကိုယ်တိုင်က execute မအောင်မြင်ဟုမဆိုလိုပါ။ ဒါဟာမျှမပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်ဖျက်ခြင်းမရရှိနိုင်ပါ။

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

PDostatement :: Rowcount သည်အလွန်အသုံးဝင်သော function တစ်ခုဖြစ်သည်။ SQL Execution သည် SQL Execution နှင့် SQL လည်ပတ်မှုသည်ဤတန်ဖိုးကိုအောင်မြင်စွာအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်၎င်းသည်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။ အထူးသဖြင့်ဒေတာပြုပြင်မွမ်းမံခြင်းလုပ်ငန်းများကိုပြုပြင်သည့်အခါသင်ကွပ်မျက်မှုရလဒ်များကိုအချိန်မှန်ဖြင့်နားလည်နိုင်သည်။ ၎င်းသည်ပရိုဂရမ်အမှားကိုင်တွယ်မှုကိုကိုင်တွယ်ဖြေရှင်းရန်ကူညီလိမ့်မည်။