CodeIgniter Database Library
Sunday, 06 June 2010 22:45
CodeIgniter's database library ကိုေလ့လာၾကည့္ရေအာင္။ ဒါမွ database နဲ႔ ခ်ိတ္ျပီးေရးတဲ့ အခါ ဘယ္ေနရာမွာ ဘယ္ function
ကိုသုံးသင့္တယ္ဆိုတာကို သိသြားပါလိမ့္မယ္။ ေနာက္ post မွာ form helper ကိုေရးျပီး ရင္ေတာ့ database sample coding ေလး
ေတြကို စလို႕ရပါျပီ။ Okay, database library ထဲမွာ ဘယ္လိုမ်ိဳး အသုံးဝင္ function ေတြပါတယ္ ဆိုတာ ၾကည့္ၾကပါစို႔။
query တစ္ခုကို run ခ်င္ေသာအခါ ဒီ query() ဆိုတဲ့ function ကိုသုံးပါတယ္။
Usage:
$sql = "select a.name, a.id, b.groupname from persons a, groups b
where a.group_id = b.id group by b.groupname, a.name";
$Q = $this->db->query($sql);
Query တစ္ခုကို run လိုက္ျပီးတဲ့ အခါ ရလာတဲ့ result ကို ဘယ္လို႕ ပုံစံနဲ႔ လိုခ်င္လဲေပၚမူတည္ျပီး result() or result_array() methods
ေတြကို သင့္ေတာ္သလို သုံးႏိုင္ပါတယ္။
Usage:
$sql = "select a.name, a.id, b.groupname from persons a, groups b where a.group_id = b.id group by b.groupname, a.name";
$Q = $this->db->query($sql);
foreach ($Q->result() as $row){
echo $row->name;
echo $row->id;
echo $row->groupname;
}
//here’s the alternative approach, with result_array
foreach ($Q->result_array() as $row){
echo $row['name'];
echo $row['id'];
echo $row['groupname'];
}
ကိုယ္က View မွာ ဘယ္လို ပုံစံနဲ႔ ျပခ်င္တာလဲ ေပၚမူတည္ျပီး ဆုံးျဖတ္ ႏိုင္ပါတယ္။
ကိုယ္ run လိုက္တဲ့ query ရဲ႕ result set ထဲမွာ row count ကိုလိုခ်င္ရင္ေတာ့ num_rows() ကိုသုံးတယ္။
Usage:
$sql = "select a.name, a.id, b.groupname from persons a, groups b where a.group_id = b.id group by b.groupname, a.name";
$Q = $this->db-> query($sql);
if ($Q->num_rows()){
foreach ($Q->result() as $row){
echo $row->name;
echo $row->id;
echo $row->groupname;
}
}
ဒီ sample မွာေတာ့ run လိုက္တဲ့ query အရ result set ထဲမွာ data ရွိမွ ႐ိုက္ျပမွာ ျဖစ္ပါတယ္။ အဲလိုေရးတာ ပိုျပီး safe ျဖစ္ပါတယ္။
တစ္ခါတစ္ရံ query မွာ limit ထည့္ျပီး run ဖို႔လိုတာေတြ ရွိပါတယ္။ အဲဒီ အခါမ်ိဳးေတြမွာ row() or row_array() ကိုသုံးႏိုင္ပါတယ္။
Usage:
$sql = "select a.name, a.id, b.groupname from persons a, groups b where a.group_id = b.id limit 1";
$Q = $this->db->query($sql);
$row = $Q->row();
echo $row->id;
//alternative syntax
$row = $Q->row_array();
echo $row['id'];
ကြၽန္ေတာ္တို႔ database application မွာ မပါမျဖစ္ query ေတြျဖစ္တဲ့ insert, update and delete စတာေတြ အားလုံးကို run ဖို႔
query() function ကိုပဲ သုံးပါတယ္။ insert query ေလးကို ၾကည့္ရေအာင္။ $sql = "insert into persons (name, gender, age) values ('Zack, 'male',28)"; $sql = "insert into persons (name, gender, age) values(?,?,?)";
$this->db->query($sql);
တကယ္လို႕ query binding ပုံစံနဲ႔ စဆိုရင္ေတာ့
$this->db->query($sql, array("Zack","male",35));
Update & Delete query ေတြလည္း ထိုနည္း၎ပါပဲ။ query function ထဲကိုပဲ ေရးထားတဲ့ sql ထည့္ run ရုံပါပဲ။ $Q = $this->db->get('persons'); $Q = $this->db->get('persons',5,20);
Query မေရးပဲ အလြယ္သုံးနည္းေလးေတြကို ဆက္ၾကည့္ရေအာင္။ get() ဆိုတဲ့ function ရဲ႕ usage ကိုၾကည့္မယ္ဆိုရင္
ရွင္းပါတယ္ person ဆိုတဲ့ table တစ္ခုလုံးကို လိုခ်င္ရင္ သုံးပါတယ္။
Limit နဲ႔ လိုခ်င္ရင္ေတာ့
sql ေရးမယ္ဆိုရင္ေတာ့ ဒီလိုပါ select * from persons limit 20, 5
$this->db->select(‘id, name, gender’);
ကိုယ္က table ထဲက fields တစ္ခ်ိဳ႕ကိုပဲ ေရြးျပီး လိုခ်င္တဲ့ အခါ select() and from() စတဲ့ function ေတြကို သုံးႏိုင္တယ္။
Usage:
$this->db->from(‘persons’);
$Q = $this->db->get();
where() clause ကိုသုံးခ်င္တဲ့ အခါ ဒီလိုပါ။ $this->db->select('id, name, gender'); $this->db->select('id, name'); $this->db->select('id, name');
Usage:
$this->db->from('persons');
$this->db->where('id', 14);
$this->db->where('status', 'live');
$Q = $this->db->get();
//query becomes:
//select id, name, gender from persons where id=14 and status='live'
where clause မွာ operator ေတြျဖစ္တဲ့ equal ( != ) or less than ( < ) တာေတြကိုလည္း သုံးႏိုင္ပါတယ္။
usage:
$this->db->from('persons');
$this->db->where('id > =', 3);
$Q = $this->db->get();
//query becomes:
//select id, name from persons where id > = 3
custom where string ကိုသုံးခ်င္တယ္ ဆိုရင္လည္း ရတယ္ဗ်ာ။
$this->db->select('id, name');
$this->db->from('persons');
$this->db->where("name='Tom' and id > 3");
$Q = $this->db->get();
//query becomes:
//select id,name from persons where name='Tom' and id > 3
LIKE clauses အတြက္လည္း like function ရွိတယ္။
Usage:
$this->db->from('persons');
$this->db->like('name', 'Tom');
$Q = $this->db->get();
//query becomes:
//select id,name from persons where name like '%Tom%'
Okay ဒါကေတာ့ ေနာက္ဆုံး function ေလးပါ insert ခ်ဖို႔ ပိုလြယ္ေအာင္ လုပ္ေပးထားတဲ့ insert() function ေလးပါ။ table name ေပးျပီး
သုံးရုံပါပဲ။ $data = array(
Usage:
'name' => $_POST['name'] ,
'gender' => $_POST['gender'],
'age' => $_POST['age']
);
$this->db->insert('persons', $data);
ဒါေလာက္ဆိုရင္ project ေကာင္းေကာင္းေရးလို႕ရျပီ။ ဒီထက္ပိုျပီး သုံးစရာ မရွိသေလာက္ပဲဗ်။ ေနာက္ post မွာေတာ့ form helper ကိုဆက္ပါအံုးမယ္။
ဆက္ဖတ္သင့္ေသာ
-
CodeIgniter and MVC for Beginners
- Structure and Configuration of CodeIgniter
- CodeIgniter Form Helper
-
MVC (SarurnGod)
-
2010-06-13 14:15:28 |SAdministrator| admin - Re: MrShanma
အကိုေရ အဲဒါက client side validation နဲ႔ပဲဆိုင္မွာေပါ့။ မလိုခ်င္တာေတြကို validation မွာ ဖယ္ျပီး server side ကိုမယူနဲ႔ေပါ့။ ဟုတ္တယ္ဟုတ္
| < Prev | Next > |
|---|
Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)
အကိုေရ အခုေရးျပ ရွင္းလင္းထားတာေတြအတြက္နဲ႕ MZ မွာေျဖေပးထားတာေတြအတြက္ ေက်းဇူးတင္ပါတယ္ဗ်ာ.......
က်ေနာ္ မသိတာေလးေမးပါဥိးမယ္ေျဖေပးပါဗ်ာ
QueryString ကသယ္လာတဲ့ ေဒတာကို URL ထဲမွာ ရိုက္ထည့္လိုက္ရင္ Error ျပခ်င္တာ ဘယ္လိုလုပ္ရမလဲဗ်
ဒီလိုဗ်
http://www.example.com/something/id?2
ဆိုပါေတာ့ အဲဒီမွာ အေနာက္ဆုံးမွာပါလာတဲ့့ id?2 မွာ 2 ကိုဖ်က္ၿပီး ယူဆာက ၃ လို႕ရိုက္ထည့္ရင္ရေနတယ္ဗ် အဲဒါမရေအာင္ ဘယ္လို ထိမ္းရမလဲဆိုတာ ဥပမာ ေလးနဲ႕ရွင္းျပေပးေစလိုပါတယ္