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

PDO ၏အခြေခံအသုံးပြုမှု၏အခြေခံရှင်းပြချက် - ဤ function နှင့်အတူဒေတာဘေ့စဆက်သွယ်မှုများနှင့်လျင်မြန်စွာမည်သို့စတင်စတင်ရမည်နည်း။

gitbox 2025-07-26

PHP, PDO (PHP Data Obserts) တွင်ဒေတာဘေ့စ်အမျိုးအစားများကိုချိတ်ဆက်ရန်နှင့်လည်ပတ်ရန်ပေါ့ပါးသောတသမတ်တည်းနည်းလမ်းကိုထောက်ပံ့ပေးသောဒေတာဘေ့စ် access actstraction abstraction actstraction actstraction အလွှာတစ်ခုဖြစ်သည်။ PDO ကိုအသုံးပြုသောအခါ PDO :: __ တည်ဆောက်ခြင်း မှတစ်ဆင့် PDO OFF ကိုပထမဆုံးဖန်တီးရန်လိုအပ်ပြီး၎င်းသည်ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်နိုင်သည်။ ဤဆောင်းပါးတွင် PDO ၏အခြေခံအသုံးပြုမှုကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ PDO ကဘာလဲ။

PDO သည် developer များကို developer များက developer များဖြစ်သောဒေတာဘေ့စ်, postgresql, sqlite စသဖြင့်ကွဲပြားခြားနားသောဒေတာများကိုလုပ်ဆောင်ရန်ခွင့်ပြုထားသောစာကြည့်တိုက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ကြိုတင်သတ်မှတ်ထားသောထုတ်ပြန်ချက်များကိုထောက်ခံရုံသာမက SQL injection တိုက်ခိုက်မှုများကိုလည်းကာကွယ်ပေးသည်။ ခေတ်သစ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ရန်နည်းလမ်းတစ်ခုဖြစ်သည်။

PDO မှတစ်ဆင့် developer များမှတဆင့်ဒေတာဘေ့စ်စနစ်တစ်ခုစီအတွက်မတူညီသောဆက်သွယ်မှုကုဒ်များကိုရေးရန်မလိုအပ်ပါ။

2 ။ PDO ၏အခြေခံ syntax :: __ တည်ဆောက်ခြင်း

PDO :: __ တည်ဆောက်ခြင်း သည် PDO အတန်းအစား၏ဆောက်လုပ်ရေးဖြစ်သည်, PDO အရာဝတ်ထုများကိုဖန်တီးရန်အသုံးပြုသည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
</span></span>
  • $ DSN (ဒေတာအရင်းအမြစ်အမည်) - ဒေတာအရင်းအမြစ်အမည်, ဒေတာဘေ့စ်အမျိုးအစား, ဒေတာဘေ့စ်အိမ်ရှင်, ဒေတာဘေ့စ်, ဒေတာဘေ့စ်အမည်နှင့်အခြားအချက်အလက်များ။

  • $ username : ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန် Username လိုအပ်သည်။

  • $ စကားဝှက် - ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်လိုအပ်သောစကားဝှက်။

  • $ ရွေးစရာများ - PDO ၏အပြုအမူကိုပြင်ဆင်ရန်ရွေးချယ်စရာ pareter သည် (ဥပမာခြွင်းချက် mode, character setting settings စသည်) ။

ဥပမာ -

 <span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb;charset=utf8'</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$options</span></span><span> = [
    PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span> =&gt; PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>,  </span><span><span class="hljs-comment">// ချွင်းချက်မှအမှား mode ကိုသတ်မှတ်ပါ</span></span><span>
    PDO::</span><span><span class="hljs-variable constant_">ATTR_DEFAULT_FETCH_MODE</span></span><span> =&gt; PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span>  </span><span><span class="hljs-comment">// Associative Array သို့ default data ရယူထားသောနည်းလမ်းကိုသတ်မှတ်ပါ</span></span><span>
];

</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အောင်မြင်စွာဆက်သွယ်မှု!"</span></span><span>;
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဆက်သွယ်မှုမအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>

ခွဲခြမ်းစိတ်ဖြာခြင်း

  • ဒီနေရာမှာ $ DSN တွင်ဒေတာဘေ့စ်အမျိုးအစား (MySQL), ဒေတာဘေ့စ်အိမ်ရှင် (localhost), ဒေတာဘေ့စ်အမည် (Testdb) နှင့်ဇာတ်ကောင် set (UTF8) တွင် database name (Testdb) နှင့် Claits Set (Testdb) တို့ပါ 0 င်သည်။

  • PDO :: Attr_ermode => PDO :: ErrMode_Exception ကို ခြွင်းချက်လုပ်ရန် ErrMode_Exception ကိုသုံးပါ။ ဤနည်းအားဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုသို့မဟုတ်မေးမြန်းမှုအမှားများဖြစ်ပေါ်သောအခါ PDO သည် ခြွင်းချက် တစ်ခုချလိမ့်မည်။

  • PDO :: Att_Default_Fets_fetch_Mode => PDO :: STO :: FETT_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_AST_SAST)

3 ။ ဘုံဒေတာဘေ့စ်အမျိုးအစားများနှင့် DSN ပုံစံများ

ကွဲပြားခြားနားသောဒေတာဘေ့စစနစ်များကွဲပြားခြားနားသော DSN ပုံစံများကိုလိုအပ်သည်။ ဤတွင်အများသုံးဒေတာဘေ့စ်အမျိုးအစားများ DSN ပုံစံများ:

MySQL

 <span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb;charset=utf8'</span></span><span>;
</span></span>

Postgresqlqlql

 <span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'pgsql:host=localhost;port=5432;dbname=testdb;'</span></span><span>;
</span></span>

SQLite

 <span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'sqlite:/path/to/database.db'</span></span><span>;
</span></span>

MSSQL

 <span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'sqlsrv:Server=localhost;Database=testdb;'</span></span><span>;
</span></span>

4 ။ PDO ဆက်သွယ်မှုရွေးချယ်စရာများ

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

  • PDO :: Attr_ermode : အမှား mode ကိုသတ်မှတ်သည်။

    • PDO :: ErrMode_silent : အသံတိတ် mode, အမှားအယွင်းများမရှိ (ပုံသေတန်ဖိုး)

    • PDO :: ErrMode_warning : သတိပေးစနစ်, PHP သတိပေးချက်။

    • PDO :: ErrMode_Exception : ချွင်းချက်စနစ်, PoException ချွင်းချက်ချခြင်း။

  • PDO :: Attr_Default_fetch_Mode : default data rescription method ကိုသတ်မှတ်သည်။

    • PDO :: fetter_assoc : Associative Array ။

    • PDO :: FETL_OBJ : အရာဝတ်ထုကိုပြန်ပို့သည်။

    • PDO :: FETT_Num : Numeric Index ခင်းကျင်း။

  • PDO :: Attr_emulate_prepes : Preprocessing ထုတ်ပြန်ချက်များကိုတုပရန်ရှိမရှိသတ်မှတ်သည်။

    • False : Simulated မဟုတ်ဘဲဒေတာဘေ့စ်၏ preprocessing ထုတ်ပြန်ချက်များကိုသုံးပါ။

    • TRUE : preprocessing ထုတ်ပြန်ချက်များကိုတုပ။

ဥပမာ - ရွေးချယ်စရာများစွာထားပါ

 <span><span><span class="hljs-variable">$options</span></span><span> = [
    PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span> =&gt; PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>,
    PDO::</span><span><span class="hljs-variable constant_">ATTR_DEFAULT_FETCH_MODE</span></span><span> =&gt; PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span>,
    PDO::</span><span><span class="hljs-variable constant_">ATTR_EMULATE_PREPARES</span></span><span> =&gt; </span><span><span class="hljs-literal">false</span></span><span>
];

</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
</span></span>

5 ။ ကိုင်တွယ်ခြင်းနှင့်ခြွင်းချက်ဖမ်းခြင်း

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

 <span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"数据库ဆက်သွယ်မှုမအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>

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

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

PDO :: __ တည်ဆောက်မှု သည် PDO အရာဝတ်ထုများကိုဖန်တီးခြင်းအတွက်အဓိကလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဒေတာဘေ့စ်သို့ဆက်သွယ်မှုများကိုအလွယ်တကူအကောင်အထည်ဖော်ရန်ဤလုပ်ဆောင်မှုကိုသုံးပါ။ ဒေတာဘေ့စ်တစ်ခုကိုချိတ်ဆက်သောအခါ PDO အပြုအမူကိုပြုပြင်ရန် DSN, Database Username, Password နှင့် Optional Connection Options အချို့ကိုဖြတ်သန်းလေ့ရှိသည်။

PDO ၏အခြေခံအသုံးပြုမှုကိုကျွမ်းကျင်ပြီးသောအခါ, သင်သည်အမျိုးမျိုးသောဒေတာဘေ့စ်အမျိုးမျိုးနှင့်ချိတ်ဆက်နိုင်ပြီး PDO မှပေးသောကြွယ်ဝသောလုပ်ဆောင်ချက်များမှတစ်ဆင့်အချက်အလက်များကိုလုပ်ဆောင်နိုင်သည်။ သင်ရိုးရှင်းသော 0 က်ဘ်အပလီကေးရှင်းများ (သို့) ရှုပ်ထွေးသော Enticrosise အဆင့်စနစ်များကိုတီထွင်ခြင်းရှိမရှိ PDO သည်သင့်အားထိရောက်စွာလုံခြုံသောဒေတာဘေ့စ်စစ်ဆင်ရေးအထောက်အပံ့ဖြင့်ပေးနိုင်သည်။

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

    PDO