PHP, PDO (PHP Data Obserts) တွင်ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ၎င်းသည်ကျွန်ုပ်တို့အားအားကောင်းသော, ဒေတာဘေ့စ် update ကိုစစ်ဆင်ရေးများအတွက်ကျွန်ုပ်တို့သည် update ကိုအောင်မြင်သောအောင်မြင်မှုရှိမရှိကိုမကြာခဏဆုံးဖြတ်ရန်လိုအပ်ပြီး PDostatement :: Rowcount () သည်ဤရည်မှန်းချက်အောင်မြင်ရန်ထိရောက်သောကိရိယာတစ်ခုဖြစ်သည်။ ယနေ့ကျွန်ုပ်တို့သည် PDostatement :: Rowcount () ကို ပြင်ဆင်ရန်ပြင်ဆင်ထားသောကြေငြာချက်နှင့်အဆင်သင့်ဖြစ်အောင်ပြုလုပ်ရန်ပြင်ဆင်ထားသည့်ကြေငြာချက်ဖြင့်ကြိုတင်ပြင်ဆင်ထားသည့်ဖော်ပြချက်ဖြင့်မိတ်ဆက်ပေးမည်။
PDostatement :: Rowcount () သည် PDO မှပေးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ယခင် SQL ကြေငြာချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်ပို့လေ့ရှိသည်။ ဒေတာဘေ့စ်လုပ်ငန်းများလုပ်ဆောင်ပြီးနောက် RORCOUT () သည် သက်ရောက်မှုရှိသောမှတ်တမ်းများကိုနားလည်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။
Update လည်ပတ်မှုတစ်ခုတွင် Regcount ၏ပြန်လည်နေရာချထားမှုတန်ဖိုး () သည်များသောအားဖြင့်အောက်ပါအချက်အလက်များကိုဖော်ပြသည်။
အကယ်. ပြန်လာသောတန်ဖိုးသည် 0 ထက်ကြီးပါကအနည်းဆုံးဒေတာအနည်းဆုံးအတန်းကိုအသစ်ပြောင်းခြင်းဟုဆိုလိုသည်။
အကယ်. ပြန်လာသောတန်ဖိုးသည် 0 ဖြစ်ပါကအချက်အလက်များမရှိပါကဤအချက်အလက်များမွမ်းမံမှုမရှိဟုဆိုလိုသည် (မွမ်းမံမှုအခြေအနေများနှင့်ကိုက်ညီသောမှတ်တမ်းများမရှိပါ)
ပြင်ဆင်ထားသည့်ဖော်ပြချက်သည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည့် PDO မှပေးသောလုံခြုံသော SQL Execution နည်းလမ်းဖြစ်သည်။ ပြင်ဆင်ထားသည့်ဖော်ပြချက်မှတစ်ဆင့် SQL ထုတ်ပြန်ချက်များကို variable များနှင့်သီးခြားစီလုပ်ဆောင်နိုင်ပြီးအစီအစဉ်လုံခြုံရေးနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
နောက်တစ်ခုက PDostatement :: Rowcount () ကိုခွဲစိတ်မှုတစ်ခု၏ရလဒ်ကိုဆုံးဖြတ်ရန်မည်သို့အသုံးပြုရမည်ကိုပြသပါမည်။
<?php
// ဒေတာဘေ့စ် connection အချက်အလက်ကို configure
$host = 'localhost';
$dbname = 'test_db';
$username = 'root';
$password = '';
// ဖန်တီး PDO နမူနာ
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$sql = "UPDATE users SET email = :email WHERE id = :id";
// အသုံးပြု prepare() ဖန်တီး prepared statement
$stmt = $pdo->prepare($sql);
// parameters တွေကိုချည်ထား
$stmt->bindParam(':email', $email);
$stmt->bindParam(':id', $id);
// အသုံးပြုသူအချက်အလက်များကို update လုပ်ရမည်
$email = '[email protected]';
$id = 123;
// ကရိယာတန်းဆာ SQL အသေအချာပေြာဆိုချက်
$stmt->execute();
// အသုံးပြု rowCount() ထိခိုက်သောအတန်းအရေအတွက်ကိုရယူပါ
$affectedRows = $stmt->rowCount();
// update ကိုအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်
if ($affectedRows > 0) {
echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း,ထိခိုက်အတန်းအရေအတွက်:$affectedRows";
} else {
echo "အဘယ်သူမျှမမှတ်တမ်းများကိုမွမ်းမံပါပြီ。";
}
?>
ဒေတာဘေ့စ်စစ်ဆင်ရေးအများစုတွင် RORCOUT () တွင်ပြန်လာသောတန်ဖိုးသည်စွမ်းဆောင်ရည်ကိုသိသိသာသာအကျိုးသက်ရောက်လိမ့်မည်မဟုတ်သော်လည်းဒေတာဘေ့စ်စားပွဲသည်အလွန်ကြီးမားသောသို့မဟုတ်ဒေတာပမာဏ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သေးသည်။
မလိုအပ်သောမေးမြန်းချက်များကိုရှောင်ကြဉ်ပါ ။ အချက်အလက်များကိုကြိုတင်မဲဖြင့်စစ်ဆေးခြင်းအားဖြင့်မွမ်းမံရန်မလိုအပ်သည့်မှတ်တမ်းများကိုမွမ်းမံခြင်းကိုရှောင်ကြဉ်ပါ။ ဥပမာအားဖြင့်, update ကိုစစ်ဆင်ရေးမပြုလုပ်မီအသစ်ပြောင်းရန်လိုအပ်သည့်စံချိန်ရှိလားဆိုတာကိုသင်မေးမြန်းနိုင်သည်။
အသုတ်အသစ်မွမ်းမံခြင်း - အသစ်ပြောင်းရန်လိုအပ်သည့်မှတ်တမ်းများစွာရှိလျှင်အကြိမ်ပေါင်းများစွာမွမ်းမံခြင်းလုပ်ငန်းကိုမလုပ်ဆောင်ရန်ရှောင်ကြဉ်ရန်အသုတ် update sql ထုတ်ပြန်ချက်များကိုသုံးရန်ကြိုးစားပါ။ ဥပမာအားဖြင့်, မှတ်တမ်းမျိုးစုံကိုတစ်ပြိုင်တည်း update လုပ်ရန် ကြေ ငြာချက်ကိုအသုံးပြုပါ။
အရောင်းအ 0 ယ်များကို အသုံးပြု . - အကယ်. သင်နှင့်သက်ဆိုင်သောဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ရန်လိုအပ်ပါက၎င်းတို့ကိုငွေပေးချေမှုကိုထိရောက်စွာတိုးတက်စေရန်နှင့်အချက်အလက်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေနိုင်သည်။ ၎င်းသည်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုများနှင့်အဆက်ဖြတ်ခြင်းအရေအတွက်ကိုလျှော့ချပြီးစွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$pdo->beginTransaction();
// ကရိယာတန်းဆာ多个အသစ်ပြောင်းခြင်းစစ်ဆင်ရေး
try {
// အသစ်ပြောင်းခြင်းစစ်ဆင်ရေး1
$stmt->execute();
// အသစ်ပြောင်းခြင်းစစ်ဆင်ရေး2
$stmt->execute();
// တင်သွင်းမှုတင်သွင်း
$pdo->commit();
} catch (Exception $e) {
// အမှားတစ်ခုဖြစ်ပေါ်လျှင်,ပြန်အရောင်းအလှိမ့်
$pdo->rollBack();
echo "ဆုံးရှုံး: " . $e->getMessage();
}
အသုံးပြုသူများသည်သူတို့၏အီးမေးလ်လိပ်စာကိုမွမ်းမံနိုင်သည့်ဝက်ဘ်ဆိုက်တစ်ခုကိုသင်တီထွင်နေသည်ဆိုပါစို့။ အသုံးပြုသူသည် update ကိုတောင်းဆိုမှုကိုတင်ပြသည့်အခါ PDostatement :: Rowcount () ကိုအီးမေးလ်လိပ်စာကိုအောင်မြင်စွာမအောင်မြင်ပါ။ အကယ်. မှတ်တမ်းများမရှိပါက (အသုံးပြုသူမှတင်ပြသောစာတိုက်ပုံးသည်ဒေတာဗေ့စ်တွင်တူညီသည်) ကိုသင်တိုက်ရိုက်အကြောင်းကြားနိုင်သည်။
<?php
// ဒေတာဘေ့စ်ပြီးသားချိတ်ဆက်နေသည်ဟုယူဆပါ
$email = '[email protected]';
$userId = 123;
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$sql = "UPDATE users SET email = :email WHERE id = :id AND email != :email";
// အသုံးပြု prepare() ဖန်တီး prepared statement
$stmt = $pdo->prepare($sql);
// parameters တွေကိုချည်ထား
$stmt->bindParam(':email', $email);
$stmt->bindParam(':id', $userId);
// ကရိယာတန်းဆာအသစ်ပြောင်းခြင်းစစ်ဆင်ရေး
$stmt->execute();
// update ကိုရလဒ်များကိုစစ်ဆေးပါ
if ($stmt->rowCount() > 0) {
echo "邮箱地址အောင်မြင်စွာအသစ်ပြောင်းခြင်း!";
} else {
echo "邮箱地址没有变化或更新ဆုံးရှုံး。";
}
?>
ဤနည်းအားဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများ၌နောက်ထပ်အသုံးပြုသူ prompts သို့မဟုတ် logging များလိုအပ်ခြင်းရှိမရှိကိုထိရောက်စွာဆုံးဖြတ်နိုင်သည်။
PDostatement :: Rowcount () သည်ဒေတာဘေ့စ်အသစ်ပြောင်းခြင်းလုပ်ငန်းများ၏ရလဒ်များကိုဆုံးဖြတ်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည့်အလွန်လက်တွေ့ကျသည့်နည်းလမ်းဖြစ်သည်။ ၎င်းကိုပြင်ဆင်ထားသောကြေညာချက်ဖြင့် အသုံးပြု. ကျွန်ုပ်တို့၏ကုဒ်၏လုံခြုံရေးကိုပိုမိုကောင်းမွန်စေရုံသာမကဒေတာဘေ့စ်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိထိရောက်စွာဆုံးဖြတ်နိုင်သည်။ စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်သောအခါအရောင်းအ 0 ယ်များကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်း,
ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်လျှောက်ထားရန်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည် ။