ဒေတာဘေ့စ်ကိုအသုံးပြုမည့် PHP ကိုအသုံးပြုသောအခါ SQL ကြေငြာချက်တစ်ခုအပြီးတွင်၎င်းသည်အချက်အလက်မည်မျှသက်ရောက်မှုရှိသည်ကိုကျွန်ုပ်တို့မကြာခဏသိရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, မွမ်းမံခြင်း , ဖျက်ခြင်း သို့မဟုတ်အချို့ ထည့်သွင်းခြင်း လုပ်ဆောင်မှုများပြုလုပ်သောအခါထိခိုက်နစ်နာသောအတန်းအရေအတွက်ကိုနားလည်ခြင်းသည်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိကိုဆုံးဖြတ်ရန်ကူညီသည်။
ဤအချိန်တွင် pdostatement :: Rowcount () function သည်အသုံးဝင်သည်။ ဤဆောင်းပါးသည် Rowcount () နည်းလမ်းကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီးအတန်းအရေအတွက်အပေါ် အခြေခံ. ခြွင်းချက်စီရင်ချက်ချသည့်အခြေအနေများမည်သို့ပြုလုပ်ရမည်ကိုသရုပ်ပြရန်အမှန်တကယ်ကုဒ်နမူနာများဖြင့်ပေါင်းစပ်ပါလိမ့်မည်။
RORCOUT () သည် PDostatement လူတန်းစား၏နည်းလမ်းတစ်ခုဖြစ်ပြီးနောက်ဆုံးကွပ်မျက်ခံရသော SQL ထုတ်ပြန်ကြေညာချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤလုပ်ဆောင်ချက်၏ပြန်လည်တန်ဖိုးကိုများသောအားဖြင့်ဒေတာကိုအမှန်တကယ် update လုပ်ခြင်းသို့မဟုတ်ဖျက်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။
public int PDOStatement::rowCount();
မှတ်ချက် - အထူးသဖြင့်ကွဲပြားခြားနားသောဒေတာဘေ့ စ ်ယာဉ်မောင်းများအောက်တွင်အနည်းငယ်ကွဲပြားစွာကွဲပြားခြားနားနိုင်သည်။
အောက်ဖော်ပြပါသည်အသုံးပြုသူအချက်အလက်များကိုဒေတာဘေ့စ်တွင်မွမ်းမံခြင်းဥပမာတစ်ခုဖြစ်သည်။ 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();
}
?>
$sql = "DELETE FROM users WHERE last_login < NOW() - INTERVAL 1 YEAR";
$stmt = $pdo->prepare($sql);
$stmt->execute();
if ($stmt->rowCount() > 0) {
echo "မလှုပ်မရှားမဆိုသုံးစွဲသူကိုအောင်မြင်စွာပယ်ဖျက်ပြီးပါပြီ。";
} else {
echo "ဖျက်ပစ်ရန်အသုံးပြုသူမရှိပါ。";
}
အချို့သောဒေတာဘေ့စ် (ဥပမာ 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 မအောင်မြင်ပါသို့မဟုတ်မပြည့်စုံပါ。";
}
Select Selecties အတွက် RORCOUT () အပြုအမူသည်မသေချာမရေရာ ပါ ။
မှန်ကန်သောဒေတာဘေ့စ်ယာဉ်မောင်းကိုအသုံးပြုခြင်း - အချို့သောဒေတာဘေ့စ် (ဥပမာ SQLite) သည်အချို့သောစစ်ဆင်ရေးများတွင် RORCOUT () ကိုအကန့်အသတ်ဖြင့်သာရှိသည်။
Rowcount () ကိုအောင်မြင်စွာလုပ်ဆောင်မှုတစ်ခုတည်းသောလက်ခဏာအဖြစ်မမှားပါ - ၎င်းသည် "ထိခိုက်နစ်နာသောအတန်းအရေအတွက်" ကိုသာဆိုလိုသည်။