server ထဲဖိုဒါတစ္ခုအရင္ေဆာက္လိုက္ပါ ။ Database ကုိ PDO(PHP Data Object) နည္းနဲ႕ခ်ိတ္ဆက္တာကုိရွင္းျပမွာ
PDO က PHP 5.2 ေနာက္ပိုင္းမွပါလာတာလို႔သိရပါတယ
ေၾကာင့္ ေနာက္ပိုင္းမွာသူ႔ကုိပဲသံုးဖို႔
နဲ႕ instantiate လုပ္ေပးရမွာပါ။ စမေလ့လာမီွ PHP myadmin ထဲမွာ အဆင္ေျပတဲ့နာမည္နဲ႕database တစ္ခုအရင္ဖန္တီးထားလိုက္ပါဦး။
ဖိုဒါထဲမွာ class.database.php နာမည္နဲ႕ ဖိုင္တစ္ဖိုင္ေဆာက္လုိက္ပါ။အဲ့ဒ
<?php
class dbConnection{
protected $db_conn;
public $db_name='shoutbox';//
public $db_user='root'; // local server တိုင္းကuser root နဲ့ Pass က Null ပဲရွိတာမ်ားတယ္။
public $db_pass='';
public $db_host='localhost';
}
?>
public,protected တို႔က Access modifire ေတြ ။ဘယ္သူေတာ့ခြင့္ျပဳတယ္ ဘယ္သူေတာ့ခြင့္မျပဳဘူးလို႔သတ္မွ
var လို႔ေရးလည္းရပါတယ္။ ဘယ္ class ကမဆိုယူသံုးလို႔ရတယ္လို႔ေျပာတာပ
ရပါတယ္။က်န္တဲ့ class ေတြကေနလွမ္းေခၚလို႔မရပါဘူး ။ ဒါကုိရွင္းျပခဲ့ၿပီးၿပီလိုေတာ့ထ
ဒါဆို Server data အတြက္ variable ေၾကျငာတာၿပီးၿပီ။ database ခ်ိတ္ေတာ့မယ္ ။OOP way ဆိုေတာ့ function တစ္ခုေခၚသံုးရေအာင္။
function connect(){
$this->db_conn=new PDO("mysql:host=$this->db_host
return $this->db_conn;
}
လက္ရွိ active ျဖစ္ေနတဲ့ class ထဲက data ကုိေခၚသံုးခ်င္ရင္ $this->လို႔သံုးရတယ္ ။ PDO ေရးထံုးက database အမ်ိဳးအစားကုိကြင္း
ထဲမွာထည့္ေၾကျငာေပးရလို႕ PDO("mysql: လို႕စေရးရတယ္။တစ္ျခား database အမ်ိဳးအစားဆိုလည္း အဲဒီအမ်ိဳးအစားေပါ့။ဥပမာဆို
PDO("odbc: အဲဒီလို ။ ၿပီးသူ႔ မူလClass ထဲကvariable host နဲ႕ dbname ကုိလက္ရွိ Server က data
ေတြ နဲ႕ထည့္သြင္းသတ္မွတ္ေပးရတယ္ ။ ဒါေၾကာင့္("mysql:host=$this->d
ဒါနဲ႕မျပီးေသးဘူး။က်န္တဲ့ db user နဲ႕ pass ကုိ ေကာ္မာေလးနဲ့ဆက္ထည့္ေပးရေသးတယ္။
PDO("mysql:host=$this->db_host
တစ္ေၾကာင္းတည္းနဲ႕ ခ်ိတ္ဆက္မွဳ အၿပီးအစီးရပါတယ္.. မခက္ပါဘူးေနာ္။return $this->db_conn က
function ဆိုေတာ့ return value ထည့္ေပးလိုက္တာ ။ ခ်ိတ္ဆက္မွဳကုိ function မသံုးဘဲလုပ္မယ္ဆိုရင္ return keyword မလိုဘူး။
ေသခ်ာေအာင္ try - catch နဲ႕ စစ္ၾကည့္ရေအာင္ ။db_conn ကုိရိုးရိုး if နဲ႔စစ္လိုက္မယ္ဆိုရင္လည္းရပါတယ္
ၾကည့္မယ္ ။ ေစာေစာက Code မွာ ဒီလိုေလးျဖည့္ေရးလိုက္မယ္။
function connect(){
try{
// ေစာေစာက PDO နဲ႕ခ်ိတ္တဲ့ ကုတ္
} catch (PDOException $e){
return $e->getmessage();
}
}
catch ထဲမွာ error ထုတ္ျပဖို႕ သတ္မွတ္ထားၿပီးသား Exception ေတြရွိပါတယ္။ အဲ့ဒီ exception ေတြကုိ $e ထဲ Catch သတ္မွတ္ေပးရပါတယ္။
အခုက PDO ခ်ိတ္ဆက္မွဳျဖစ္လို႔ Exception က PDOException $e ရယ္လို႔ျဖစ္လာပါတယ္။တျခားဟာေတြအ
ေစာေစာကေရးခဲ့တာေတြျပန္ၾကည့္ရေအ
<?php
class dbConnection{
protected $db_conn;
public $db_name='shoutbox';
public $db_user='root';
public $db_pass='';
public $db_host='localhost';
function connect(){
try{
$this->db_conn=new PDO("mysql:host=$this->db_host
return $this->db_conn;
} catch (PDOException $e){
return $e->getmessage();
}
}
}
?>
server မွာ run ၾကည့္ Error မရွိရင္ ခ်ိတ္ဆက္မွဳအိုေခေနၿပီ။ PDO နဲ႕ခ်ိတ္ဆက္မွဳကုိဒီေလာက္နဲ႕ပဲန
လက္ေတြ႕မွာေတာ့ ဒီ class ကုိတစ္ဖိုင္သပ္သပ္ထား ၿပီး data အသြင္းအထုတ္အတြက္ သပ္သပ္
function တစ္ခုေရး ၿပီး manage လုပ္ေပးရမွာပါ ။
No comments:
Post a Comment