Belajar Query Builder pada Codeingiter 4

Belajar Query Builder pada Codeingiter 4

Sobatcoding.com - Belajar Tentang Query Builder Codeigniter 4

Di dalam Codeigniter terdapat class Query Builder yang bisa digunakan untuk akses database atau query ke database dengan penulisan script minim. Sehingga kita bisa akses ke database seperti SELECT, UPDATE, DELETE lebih mudah hanya menggunakan 1 line atau 2 line code saja.

 

Load Query Builder

$db      = \Config\Database::connect();
//atau
$db = db_connect();

Result Data

Ada beberapa jenis result yang bisa digunakan saat query ke database Array atau Object.

//Ouput data berupa Object
$row = $db->table('users')->get()->getResult();
//Ouput data berupa Array
$row = $db->table('users')->get()->getResultArray();
//Ouput data berupa Single Row Object
$row = $db->table('users')->get()->getRow();

Select Data

Contoh query builder untuk select data seperti berikut:

$row = $db->select('name, email')->from('users')->get()->getResult();

//query builder with limit offset
$limit = 10
$offset = 0
$row = $db->select('name, email')->from('users')->get($limit, $offset)->getResult();

//query builder with condition
$row = $db->select('name, email')->from('users')->getWhere(['deleted_at' => null])->getResult();
//qurey builder single row with condition
$row = $db->select('name, email')->from('users')->where('id', 1)->get()->getRow();


//query builder with condition, limit and offset
$limit = 10
$offset = 0
$row = $db->select('name, email')->from('users')->getWhere(['deleted_at' => null], $limit, $offset)->getResult();

Contoh select menggunakan grouping.

$row = $db->select('*')->from('users')
    ->groupStart()
        ->where('name', 'a')
        ->orGroupStart()
            ->where('email', 'b')
            ->where('address', 'c')
        ->groupEnd()
    ->groupEnd()
    ->where('phone', 'd')
->get();

// Generates:
// SELECT * FROM (`users`) WHERE ( `name` = 'a' OR ( `email` = 'b' AND `address` = 'c' ) ) AND `phone` = 'd'

Insert Data

Contoh query builder untuk insert data.

$row = $db->table('users');
$data = [
        'username' => 'darth',
        'email'    => 'd.vader@theempire.com'
];

$row->insert($data);
echo $db->insertID(); //return ID last insert

Update Data

Contoh query builder untuk update data.

$row = $db->table('users');
$row->set('name', 'Alex Fernando');
$row->where('id', 1);
$row->update();

//menggunakan array
$row = $db->table('users');
$array = [
   'name' => 'Alex Fernando',
   'address' => 'Malang',
];
$row->set($array);
$row->where('id', 1);
$row->update();

Delete Data

Contoh query builder untuk hapus data.

$row = $db->table('users');
$row->where('id', 1);
$row->delete();

Transaction

Transaction biasa digunakan saat proses simpan multiple data. Jika ada salah satu proses simpan gagal proses simpan ke database bisa di roll back. 

Contoh:

$this->db->transStart();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->transComplete();

 

Error Handle

Jika kita ingin manage error secara manual, kita bisa gunakan contoh kode seperti berikut

$this->db->transStart();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->transComplete();

if ($this->db->transStatus() === false) {
    // generate an error... or use the log_message() function to log your error
}else{
   //echo oke
}

 

Sekian tutorial kali ini. Jika teman-teman memiliki pertanyaan atau saran mengenai artikel ini, jangan ragu untuk meninggalkan komentar pada form di bawah ini.

 

Semoga bermanfaat.