ဒေတာဘေ့စ်ဆက်သွယ်မှုသည် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်စီမံကိန်းကြီးများ၏တည်ငြိမ်မှုနှင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုများ၏တည်ငြိမ်မှုနှင့်ထိရောက်မှုကိုအရေးပါသည်။ Code ကိုရိုးရှင်းစေရန်နှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေရန်အတွက် developer များစွာသည် database connections များကို function တစ်ခုအတွင်းရှိဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုအသုံးပြုသည်။ Init function သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုစတင်ရန်အလေ့အကျင့်တစ်ခုဖြစ်သည်။
ဤဆောင်းပါးသည် Database connection connection ကို Init function မှတဆင့်မည်သို့စတင်ရန်နှင့်ပြည့်စုံသောဥပမာကုဒ်ကိုပြသရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ ဒေတာဘေ့စ် connection အချက်အလက်များကို configuration files များမှတဆင့်မည်သို့သိမ်းဆည်းရမည်ကိုလည်းဆွေးနွေးပါမည်ကိုလည်းဆွေးနွေးပါမည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုစတင်ရန်အသုံးပြုသော Init function ကိုဖန်တီးရန်လိုအပ်သည်။ ဤအောင်မြင်ရန် PDO (PHP Data Object) extension များကိုများသောအားဖြင့်အသုံးပြုသည်။ PDO သည်ကွဲပြားခြားနားသောဒေတာဘေ့စ်အမျိုးမျိုးကိုရယူရန်ပေါင်းစည်းသည့် interface ကိုထောက်ပံ့ပေးသည်။
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုစတင်ပါ
function init() {
// ဒေတာဘေ့စ် configuration သတင်းအချက်အလက်
$host = 'localhost';
$dbname = 'my_database';
$username = 'root';
$password = '';
try {
// ဖန်တီး PDO နမူနာ
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// အမှားကိုင်တွယ် mode ကို set
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!";
return $pdo;
} catch (PDOException $e) {
echo 'ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $e->getMessage();
}
}
?>
ဤရိုးရှင်းသော incast function တွင် PHP ၏ PDO အတန်းကို MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်အသုံးပြုသည်။ $ host , $ dbname , $ username နှင့် $ စကားဝှက်သည် ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်လိုအပ်သောအခြေခံအချက်အလက်များဖြစ်သည်။ Try-catch block တွင်ကျွန်ုပ်တို့သည် connection error error နှင့် output အသေးစိတ်အမှားအချက်အလက်များကိုဖမ်းယူသည်။
Code ၏ထိန်းသိမ်းမှုနှင့်လုံခြုံရေးကိုတိုးတက်စေရန် Database connection ၏ configuration information ကိုများသောအားဖြင့် function အတွင်းရှိ hard-coded အစားသီးခြား configuration file တစ်ခုတွင်သိမ်းဆည်းထားလေ့ရှိသည်။ ဤအရာ၏အားသာချက်သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုအချက်အလက်ပြောင်းလဲသွားပါက configuration file ကိုပြုပြင်ရန်သာလိုအပ်ပါသည်။ သင်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုအသုံးပြုသောနေရာတစ်ခုစီကိုပြုပြင်ရန်မလိုအပ်ပါ။
Configuration File ကိုဘယ်လိုသုံးရမလဲဆိုတာဒီမှာဥပမာတစ်ခုပါ။
<?php
return [
'host' => 'localhost',
'dbname' => 'my_database',
'username' => 'root',
'password' => ''
];
?>
<?php
function init() {
// configuration ဖိုင်ကိုတင်နေသည်
$config = include('config.php');
try {
// ဖန်တီး PDO နမူနာ
$pdo = new PDO(
"mysql:host={$config['host']};dbname={$config['dbname']}",
$config['username'],
$config['password']
);
// အမှားကိုင်တွယ် mode ကို set
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!";
return $pdo;
} catch (PDOException $e) {
echo 'ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $e->getMessage();
}
}
?>
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ် configuration အချက်အလက်များကို function ၏အတွင်းပိုင်းမှသီးခြားခွဲထုတ်ပြီး configuration ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်မှုနှင့်ပြုပြင်ပြောင်းလဲမှုပိုမိုအဆင်ပြေစေသည်။
အမှန်တကယ်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဒေတာဘေ့စ်၏စကားဝှက်များကို Code တွင်တိုက်ရိုက်သိုလှောင်ရန်အလေ့အကျင့်မဟုတ်ပါ။ အထိခိုက်မခံသောသတင်းအချက်အလက်များ (ဥပမာဒေတာဘေ့စ်စကားဝှက်များကဲ့သို့သောဒေတာဘေ့စ်စကားဝှက်များ) ကို Code ဖိုင်များသို့ရေးသားခြင်းထက်သဘာဝပတ်ဝန်းကျင် variable များကိုသိမ်းဆည်းရန်ပိုမိုလုံခြုံသည်။
ဥပမာအားဖြင့်, သင်သည်ဒေတာဘေ့စ် connection information ကိုသိုလှောင်ရန် .env ဖိုင်ကို သုံး. PHP ၏ GetNV function မှတဆင့်ဤအချက်အလက်ကိုရယူနိုင်သည်။
DB_HOST=localhost
DB_NAME=my_database
DB_USER=root
DB_PASS=secretpassword
<?php
function init() {
// ပတ်ဝန်းကျင် variable တွေကိုရယူပါ
$host = getenv('DB_HOST');
$dbname = getenv('DB_NAME');
$username = getenv('DB_USER');
$password = getenv('DB_PASS');
try {
// ဖန်တီး PDO နမူနာ
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// အမှားကိုင်တွယ် mode ကို set
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!";
return $pdo;
} catch (PDOException $e) {
echo 'ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $e->getMessage();
}
}
?>
ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပြုလုပ်သောအခါသင်မရနိုင်သောဒေတာဘေ့စ်သို့မဟုတ်စကားဝှက်ကိုမမှန်ကန်သောသုံးစွဲသူအမည်သို့မဟုတ်စကားဝှက်စသည့်အမှားအယွင်းများကိုသင်ကြုံတွေ့ရနိုင်သည် ။ အသုံးပြုသူအတွေ့အကြုံကိုမြှင့်တင်ရန်အတွက်အမှားမက်ဆေ့ခ်ျများကိုထုတ်ယူခြင်းအပြင်အမှားမက်ဆေ့ခ်ျများကိုလည်းမှတ်တမ်းသို့လည်းမှတ်တမ်းတင်နိုင်သည်။
<?php
function init() {
// ကွက်ကွက်ကေျာင်း
$host = 'localhost';
$dbname = 'my_database';
$username = 'root';
$password = '';
try {
// ဖန်တီး PDO နမူနာ
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// အမှားကိုင်တွယ် mode ကို set
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!";
return $pdo;
} catch (PDOException $e) {
// မှတ်တမ်းတင်ရန်အမှားသတင်းအချက်အလက်မှတ်တမ်း
error_log("数据库ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $e->getMessage(), 3, '/var/log/php_error.log');
echo 'ဆက်သွယ်မှုမအောင်မြင်ပါ,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ。';
}
}
?>
Database connection ကိုစတင်ရန် init function ကိုအသုံးပြုခြင်းအားဖြင့် developer များကဒေတာဘေ့စ်ဆက်သွယ်မှု၏ယုတ္တိဗေဒကို function တစ်ခုထဲသို့ 0 င်ရောက်နိုင်သည်။ Code ၏လုံခြုံရေးနှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေရန် Database configuration ကိုပြင်ပဖိုင်သို့မဟုတ်ပတ် 0 န်းကျင်ဆိုင်ရာ variable များကိုသိမ်းထားနိုင်သည်။ အမှားများကိုကိုင်တွယ်ဖြေရှင်းရန်နှင့်ပြ problems နာများကိုဖြေရှင်းရန်မှတ်တမ်းများကိုမှတ်တမ်းတင်ရန်သတိရပါ။