လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDO ၏ပြန်လာတန်ဖိုးကို '00000' သည် '00000' ဖြစ်သည်။ ဒေတာဘေ့စ်စစ်ဆင်ရေးသည်အမှန်တကယ်အောင်မြင်မှုရှိမရှိတိကျစွာဆုံးဖြတ်ရန်။

PDO ၏ပြန်လာတန်ဖိုးကို '00000' သည် '00000' ဖြစ်သည်။ ဒေတာဘေ့စ်စစ်ဆင်ရေးသည်အမှန်တကယ်အောင်မြင်မှုရှိမရှိတိကျစွာဆုံးဖြတ်ရန်။

M66 2025-06-22

PHP ၏ PDO (PHP Data Obserts) ကိုဒေတာဘေ့စ်လုပ်ငန်းများအတွက်အသုံးပြုသည့်အခါ PDO :: အမှားအယွင်းများ () errorcode () Method သည် '000000' ကိုပြန်ပို့ခြင်းမရှိကြောင်းညွှန်ပြရန် '000000' ကိုပြန်ပို့သည်။ ဆိုလိုသည်မှာဒေ တာ ဘေ့စ်၏စစ်ဆင်ရေးသည်အောင်မြင်စွာပြီးဆုံးကြောင်းဆိုလိုသည်မှာ ,

ဤဆောင်းပါးသည်အဘယ်ကြောင့် PDO :: errorcode () 000000 '' 000000 ' ကိုအဘယ်ကြောင့်ပြန်ပို့သည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။


PDO :: errorcode () errorcode () '000000' ကိုပြန်ပို့ပါ 100% အောင်မြင်မှုဟုမဆိုလိုပါ။

'00000' 00000 ကို PDO :: errorcode () errorcode () သည် "အမှားအယွင်းများ" ဟုအဓိပ္ပာယ်ရသော SQLSTATE standard code တစ်ခုဖြစ်သည်။ Syntax အမှားများ, ဆက်သွယ်မှုပြတ်တောက်ခြင်းစသည့်ဒေတာဘေ့စ်ဆက်သွယ်ရေးလုပ်ငန်းစဉ်အတွင်းအမှားအယွင်းများရှိ,

သို့သော်အချို့သောကိစ္စရပ်များတွင် SQL ကြေငြာချက်ကိုကွပ်မျက်ခံရခြင်းနှင့်အမှားအယွင်းမရှိလျှင်ပင်အမှားအယွင်း မရှိလျှင် '000000' ကို ပြန်လည်ရောက်ရှိဆဲဖြစ်သော်လည်းစစ်ဆင်ရေးရလဒ်သည်စံနမူနာရှင်မဟုတ်ပေ။ ဥပမာအားဖြင့်:

  • အသစ်ပြောင်းခြင်း ကြေညာချက်ကိုကွပ်မျက်ခံရသော်လည်းမည်သည့်အတန်းကိုမျှမပြုပြင်ခဲ့ကြပါ (မည်သည့်မှတ်တမ်းသည်မည်သည့်မှတ်တမ်းနှင့်မကိုက်ညီသောကြောင့်)

  • Delete ကြေညာချက်ကိုကွပ်မျက်ခံရသော်လည်းမည်သည့်လိုင်းမျှမဖျက်ခံခဲ့ရပါ။

  • Insert ထုတ်ပြန်ချက်သည်ကွပ်မျက်ခံရသော်လည်း,

ဤအခြေအနေများသည်အမှားအယွင်းများကိုဖြစ်ပေါ်စေသည်မဟုတ်သော်လည်းစီးပွားရေးဆိုင်ရာယုတ္တိဗေဒအတွက်လုပ်ဆောင်မှုသည်အောင်မြင်စွာအကျိုးသက်ရောက်ခြင်းမရှိပါ။


ဒေတာဘေ့စ်စစ်ဆင်ရေးသည်အမှန်တကယ်အောင်မြင်မှုရှိမရှိတိကျစွာဆုံးဖြတ်ရန်။

1 ။ rowcount () အပေါ်ဘေးဒဏ်သင့်အတန်းအရေအတွက်ကိုဆုံးဖြတ်ရန်

PDostatement :: Rowcount () နောက်ဆုံးကွပ်မျက်ခံရသော SQL ကြေငြာချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ ၎င်းသည် update ကို နှင့် ဖျက်ခြင်း ရှိမရှိကိုဆုံးဖြတ်ခြင်းအတွက်အရေးကြီးသောအခြေခံဖြစ်သည်။

 <?php
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');

$sql = "UPDATE users SET status = 1 WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':id' => 123]);

if ($stmt->errorCode() === '00000') {
    $affectedRows = $stmt->rowCount();
    if ($affectedRows > 0) {
        echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း,ဒါဟာထိခိုက်ခဲ့သည် {$affectedRows} အိုကေ。";
    } else {
        echo "执အိုကေ成功,但没有အိုကေ被更新。";
    }
} else {
    echo "ဒေတာဘေ့စ်စစ်ဆင်ရေးတွင်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်,အမှားကုဒ်:" . $stmt->errorCode();
}
?>

ဤနေရာတွင် errorcode () သည် '000000' ဖြစ်သော်လည်း Rowcount () သုညထက် သာ. ကြီးသည်ဟုသာလျှင်အမှန်တကယ်ပြုပြင်မွမ်းမံရန်စဉ်းစားသည်။


2 ။ data ကိုထည့်သွင်းပြီးနောက် lastinsertid () မှတဆင့် () ကိုစစ်ဆေးပါ

AutoOncrement Primary Key ၏သွင်းသွင်းခြင်းလုပ်ငန်းစဉ်အတွက် Inserted Record ID ကို PDO :: Lastinstid () မှတဆင့်ရယူနိုင်သည်။ အချည်းနှီးသောနှင့်ကျိုးကြောင်းဆီလျော်သော ID ကိုပြန်ပို့လျှင်, သွင်းသည်အောင်မြင်သည်။

 <?php
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');

$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name' => 'Zhang San', ':email' => 'zhangsan@example.com']);

if ($stmt->errorCode() === '00000') {
    $lastId = $pdo->lastInsertId();
    if ($lastId) {
        echo "အောင်မြင်စွာထည့်ပါ,အသုံးပြုသူအသစ်များIDအတွက်:{$lastId}";
    } else {
        echo "执အိုကေ成功,သို့သော်အသစ်သော Insert ကိုပြန်ပို့ခဲ့သည်ID。";
    }
} else {
    echo "ဒေတာဘေ့စ်စစ်ဆင်ရေးတွင်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်,အမှားကုဒ်:" . $stmt->errorCode();
}
?>

သတိပြုရမည်မှာ taleslesertid ၏အဓိကသော့ချက်သည်ဒေတာဘေ့စ်စားပွဲပေါ်တွင်မူတည်ကြောင်းသတိပြုပါ။


3 ။ ခြွင်းချက်များဖမ်းယူခြင်းနှင့်ပိုမိုလုံခြုံရန်ငွေပေးငွေယူထိန်းချုပ်မှုကိုသုံးပါ

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

 <?php
try {
    $pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $pdo->beginTransaction();

    $sql1 = "UPDATE accounts SET balance = balance - 100 WHERE user_id = :user_id";
    $stmt1 = $pdo->prepare($sql1);
    $stmt1->execute([':user_id' => 1]);
    if ($stmt1->rowCount() === 0) {
        throw new Exception("အကောင့်နှုတ်ယူခြင်းမအောင်မြင်ပါ,无受影响အိုကေ数");
    }

    $sql2 = "UPDATE accounts SET balance = balance + 100 WHERE user_id = :user_id";
    $stmt2 = $pdo->prepare($sql2);
    $stmt2->execute([':user_id' => 2]);
    if ($stmt2->rowCount() === 0) {
        throw new Exception("အကောင့်ဖြန့်မှုမအောင်မြင်ပါ,无受影响အိုကေ数");
    }

    $pdo->commit();
    echo "အောင်မြင်စွာလွှဲပြောင်း";
} catch (Exception $e) {
    $pdo->rollBack();
    echo "စစ်ဆင်ရေးပျက်ကွက်,အကေြာင်းရင်း:" . $e->getMessage();
}
?>

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


အကျဉ်းချုပ်

  • PDO :: အမှားအယွင်းများကိုမဖော်ပြရန် '000000' ကိုပြန်ပို့သည်။ သို့သော်စစ်ဆင်ရေးသည်အမှန်တကယ်အကျိုးသက်ရောက်မှုရှိသည်ဟုမဆိုလိုပါ။

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

  • သွင်းယူခြင်းအတွက် PDO :: Lastinserinsertid () ကိုထည့်သွင်းရန်အောင်မြင်မှုရှိ, မရှိ,

  • ဒေတာစစ်ဆင်ရေး၏သမာဓိနှင့်တိကျမှန်ကန်မှုကိုသေချာစေရန်အတွက်ငွေသွင်းငွေထုတ်ခြင်းနှင့်ခြွင်းချက်များကိုအသုံးပြုရန်အကြံပြုသည်။

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

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    PDO errorCode