PHP သည် MySQL သို့ ချိတ်ဆက်သည်။
PHP 5 နှင့် နောက်ပိုင်းတွင် MySQL database ဖြင့် အလုပ်လုပ်နိုင်သည်-
- MySQLi တိုးချဲ့မှု ("i" သည် တိုးတက်ကောင်းမွန်မှုအတွက် အတိုကောက်ဖြစ်သည်)
- PDO (PHP ဒေတာ အရာဝတ္ထုများ)
PHP ၏ အစောပိုင်းဗားရှင်းများသည် MySQL extension ကို အသုံးပြုခဲ့သည်။ သို့သော်၊ ဤတိုးချဲ့မှုကို 2012 ခုနှစ်တွင် ငြင်းပယ်ခဲ့သည်။
MySQLi သို့မဟုတ် PDO သုံးသင့်ပါသလား။
အတိုချုံး အဖြေတစ်ခု လိုအပ်ပါက "သင်ကြိုက်သမျှ" လို့ ဆိုနိုင်ပါတယ်။
MySQLi နှင့် PDO နှစ်မျိုးလုံးတွင် ၎င်းတို့၏ အားသာချက်များရှိသည်။
PDO သည် မတူညီသော ဒေတာဘေ့စ်စနစ် ၁၂ ခုတွင် အလုပ်လုပ်မည်ဖြစ်ပြီး MySQLi သည် MySQL databases များနှင့်သာ အလုပ်လုပ်မည်ဖြစ်သည်။
ထို့ကြောင့် သင့်ပရောဂျက်ကို အခြားဒေတာဘေ့စ်ကိုအသုံးပြုရန် သင့်ပရောဂျက်ကို ပြောင်းရပါက PDO သည် လုပ်ငန်းစဉ်ကို လွယ်ကူစေသည်။ ချိတ်ဆက်မှု string နှင့် queries အနည်းငယ်ကိုသာ သင်ပြောင်းလဲရပါမည်။ MySQLi ဖြင့်၊ သင်သည် ကုဒ်တစ်ခုလုံးကို ပြန်လည်ရေးသားရန် လိုအပ်လိမ့်မည် - စုံစမ်းမှုများ ပါဝင်သည်။
နှစ်ခုလုံးသည် object-oriented ဖြစ်သော်လည်း MySQLi သည်လည်း procedural API ကို ပေးပါသည်။
နှစ်ခုစလုံးက ပြင်ဆင်ထားတဲ့ ထုတ်ပြန်ချက်တွေကို ထောက်ခံတယ်။ ပြင်ဆင်ထားသော ထုတ်ပြန်ချက်များသည် SQL ထိုးသွင်းခြင်းမှ ကာကွယ်ပေးပြီး ဝဘ်အက်ပလီကေးရှင်းလုံခြုံရေးအတွက် အလွန်အရေးကြီးပါသည်။
MySQLi နှင့် PDO Syntax နှစ်ခုလုံးရှိ MySQL နမူနာများ
ဤအခန်းနှင့် အောက်ပါအခန်းများတွင် PHP နှင့် MySQL ဖြင့် အလုပ်လုပ်ပုံသုံးနည်းကို သရုပ်ပြသည် ။
- MySQLi (အရာဝတ္ထု-ဆန်သော)
- MySQLi (လုပ်ထုံးလုပ်နည်း)
- PDO
MySQLi ထည့်သွင်းခြင်း။
Linux နှင့် Windows အတွက်- php5 mysql ပက်ကေ့ဂျ်ကို ထည့်သွင်းသောအခါတွင် MySQLi တိုးချဲ့မှုကို အလိုအလျောက် ထည့်သွင်းပါသည်။
တပ်ဆင်မှုအသေးစိတ်အတွက်၊ http://php.net/manual/en/mysqli.installation.php သို့ သွားပါ။
PDO တပ်ဆင်ခြင်း။
တပ်ဆင်မှုအသေးစိတ်အတွက်၊ http://php.net/manual/en/pdo.installation.php သို့သွားပါ။
MySQL သို့ ချိတ်ဆက်မှုတစ်ခုကို ဖွင့်ပါ။
MySQL ဒေတာဘေ့စ်တွင် ဒေတာကို မဝင်ရောက်မီ၊ ကျွန်ုပ်တို့သည် ဆာဗာသို့ ချိတ်ဆက်နိုင်ရန် လိုအပ်သည်-
ဥပမာ (MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
အထက်ဖော်ပြပါ အရာဝတ္ထုကို ဦးတည်သော ဥပမာအား သတိပြုပါ။
PHP 5.2.9 နှင့် 5.3.0 အထိ $connect_error ပျက်သွားသည်။ 5.2.9 နှင့် 5.3.0 မတိုင်မီ PHP ဗားရှင်းများနှင့် လိုက်ဖက်မှုရှိရန် လိုအပ်ပါက၊ ယင်းအစား အောက်ပါကုဒ်ကို အသုံးပြုပါ-
// ချိတ်ဆက်မှုကို စစ်ဆေး
ပါ (mysqli_connect_error()) {
die("ဒေတာဘေ့စ်ချိတ်ဆက်မှု မအောင်မြင်ပါက" . mysqli_connect_error());
}
ဥပမာ (MySQLi Procedural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
ဥပမာ (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
မှတ်ချက်- အထက်ဖော်ပြပါ PDO ဥပမာတွင် ကျွန်ုပ်တို့သည် ဒေတာဘေ့စ် (myDB) ကို သတ်မှတ်ပေး ထားပါသည်။ PDO နှင့်ချိတ်ဆက်ရန် တရားဝင်ဒေတာဘေ့စ်တစ်ခု လိုအပ်သည်။ ဒေတာဘေ့စ်ကို မသတ်မှတ်ထားပါက ခြွင်းချက်တစ်ခု လွှင့်ပစ်သည်။
အကြံပြုချက်- PDO ၏ ကြီးမားသောအကျိုးကျေးဇူးမှာ ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်မေးမြန်းချက်များတွင် ဖြစ်ပေါ်နိုင်သည့်ပြဿနာများကို ကိုင်တွယ်ဖြေရှင်းရန် ခြွင်းချက်အတန်းတစ်ခုရှိသည်။ ခြွင်းချက်တစ်ခုအား try{ } ပိတ်ဆို့ခြင်းအတွင်း ချလိုက်ပါက၊ ဇာတ်ညွှန်းသည် လုပ်ဆောင်ခြင်း ရပ်သွားပြီး ပထမ catch(){ } ဘလောက်ဆီသို့ တိုက်ရိုက်စီးဆင်းသွားပါသည်။
ချိတ်ဆက်မှုကို ပိတ်ပါ။
ဇာတ်ညွှန်းပြီးဆုံးသည့်အခါ ချိတ်ဆက်မှုကို အလိုအလျောက် ပိတ်သွားပါမည်။ ချိတ်ဆက်မှုကို မပိတ်မီ အောက်ပါတို့ကို အသုံးပြုပါ။
MySQLi Object-Oriented-
$conn->close();
MySQLi လုပ်ထုံးလုပ်နည်း-
mysqli_close($conn);
PDO-
$conn = null;