CodeIgniter: penulisan config database

Konfigurasi database yang dapat digunakan untuk Codeigniter. Semua konfigurasi ini dapat ditulis di config/database.php

Konfigurasi ditulis dalam bentuk array

$db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'database_name',
        'dbdriver' => 'mysqli',
        'dbprefix' => '',
        'pconnect' => TRUE,
        'db_debug' => TRUE,
        'cache_on' => FALSE,
        'cachedir' => '',
        'char_set' => 'utf8',
        'dbcollat' => 'utf8_general_ci',
        'swap_pre' => '',
        'encrypt' => FALSE,
        'compress' => FALSE,
        'stricton' => FALSE,
        'failover' => array()
);

Untuk Beberapa penulisan koneksi tertentu ( PDO, PostgreSQL, Oracle, ODBC), dimana diperlukan DSN. Maka penulisan DSNnya dapat dimasukkan kedalam parameter DSN seperti contoh berikut

// PDO
$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

// Oracle
$db['default']['dsn'] = '//localhost/XE';

sehingga konfigurasinya

$db['default'] = array(
        'dsn'   => = 'pgsql:host=localhost;port=5432;dbname=database_name',
        'hostname' => '',
        'username' => '',
        'password' => '',
        'database' => '',
        'dbdriver' => '',
        'dbprefix' => '',
        'pconnect' => TRUE,
        'db_debug' => TRUE,
        'cache_on' => FALSE,
        'cachedir' => '',
        'char_set' => 'utf8',
        'dbcollat' => 'utf8_general_ci',
        'swap_pre' => '',
        'encrypt' => FALSE,
        'compress' => FALSE,
        'stricton' => FALSE,
        'failover' => array()
);
mengisi kemungkinan akan membuat parameter lainnya tidak dibaca

Query Builder

Secara default, Query builder dalam keadaan TRUE. Namun apabila tidak menginginkan penggunaan Query Builder dalam projek, dapat dimatikan dengan memasukkan parameter FALSE

$query_builder = TRUE;

Advertisements

CodeIgniter: Penamaan Field dan Table

Tidak ada Penulisan baku untuk penamaan table maupun field. Terutama untuk menentukan tipe field dari field. Dalam memberikan nama table atau field, disarankan

  • Jelas
  • memakai Format yang sama. contoh: penulisan field pertama nama_lengkap. penulisan field kedua malah tanggallahir
  • memakai bahas yang sama. Apabila kesulitan, memadukan disarankan
  • pendek atau disingkat
  • memakai prefix. bersifat Optional

Prefix

Tujuan memakai Prefix adalah untuk membedakan table-table bernama sama. Apabila dalam 1 database terdapat 2-lebih projek. Biasanya ini berkaitan dengan projek ERP yang meletakkan database pada tempat yang sama (DBMS dan tidak pada database berbeda).

Dengan memakai prefix, dapat diketahui sumber aplikasi/projek yang menggunakan. Ada banyak alasan yang lain, tetapi utamakan pada penggunaan yang dapat mudah terbaca para programer yang menggunakan.

CodeIgniter: Fungsi pendukung Query Builder

Untuk penulisan terbaik adalah memanfaatkan query builder yang tersedia di CodeIgniter. Pemanfaatan Query Builder dapat mengurangi kerumitan penulisan coding kedepannya. Untuk dukungan atas penulisan query, terutama untuk proses debuging ada beberapa fungsi pendukung yang sangat membantu.

Field yang terpengaruh

dalam proses insert dan nantinya Update, akan ada field/data yang akan terpengaruh. Untuk mengetahui jumlah yang terpengaruh. Dapat menggunakan
$this->db->affected_rows();

letakkan setelah proses query insert, update dan delete berjalan.

Error

apabila menginginkan proses error dapat terlihat. manfaatkan perintah
$this->db->error();

letakkan dibawah proses query. Pastikan proses query berjalan salah. Dan perintah ini akan mengeluarkan error yang terjadi

 

pastikan debug error dalam keadaan mati dalam configurasi. Bila tidak, error akan keluar tanpa kecuali

CodeIgniter: Menggunakan Query Builder (insert)

Untuk melakukan insert dapat menggunakan query
$sql = "INSERT INTO mytable (title, name) VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";

penulisan ini akan menyulitkan ketika field yang akan dimasukkan banyak

Dengan memanfaatkan query builder, penulisan dapat dipersingkat sebagai berikut

$data = array(
        'title' => $title,
        'name' => $name
);
$this->db->insert('mytable', $data);
penulisan query yang berjalan sama seperti query insert di atas. Penambahan kutip akan automatis diberikan

proses insert dapat mengembalikan nilai id yang dimasukkan.
$this->db->insert_id();

tidak semua DBMS mendukung fitur ini.
ID yang dikembalikan hanya apabila terdapat field bertipe integer Key Primary dengan kemampuan Autoincrement

Penulisan Query Yang berjalan

untuk melihat query insert yang akan dijalankan dapat memanfaatkan
$this->db->insert_string();

penggunaannya sama seperti insert()

untuk melilhat query yang dijalankan dapat memanfaatkan
$this->db->last_query();

akan mengeluarkan query yang terakhir dijalankan.

CodeIgniter: Menggunakan Query Builder

Untuk penulisan query dapat memanfaatkan Query Builder. Kegunaan query builder ini dapat merapikan dan membuat penulisan coding lebih mudah terbaca


$query = $this->db->get('table_name');
foreach ($query->result() as $row)
{
        echo $row->title;
}

menjalankan query di atas sama seperti menjalankan

select * from table_name

Dengan menambahkan query builder lainnya, hasil query yang dikeluarkan akan berbeda

CodeIgniter: Menjalankan Query

Untuk menjalankan query dapat memanfaatkan perintah

$this->db->query( );

contoh:

$this->db->query('select * from table' );

Hindari menuliskan query langsung dalam kurung.
$sql="select * from table";
$this->db->query('select * from table' );

penulisan yang disarankan adalah yang bersih

Menampilkan Hasil

Terdapat 2 metode menampilkan hasil yaitu dalam bentuk

  • Array
  • Object

Hasil Objek

Untuk menampilkan dalam bentuk objek menggunakan
$query->result();
Ini akan mengeluarkan keseluruhan data yang akan ditarik


$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result() as $row)
{
        echo $row->title;
        echo $row->name;
        echo $row->email;
}

Hasil Array

untuk menampilkan bentuk Array menggunakan
$query->result_array()
ini akan mengeluarkan keseluruhan
$query = $this->db->query(‘SELECT name, title, email FROM my_table’);


foreach ($query->result_array() as $row)
{
        echo $row['title'];
        echo $row['name'];
        echo $row['email'];
}

Mengeluarkan hanya 1 Data

Untuk mengeluarkan hanya satu data saja, dapat menggunakan
$query->row();
untuk mengeluarkan berbentuk Objek

$query->row_array();
untuk mengeluarkan berbentuk Array

Mengeluarkan jumlah data

Untuk mengeluarkan jumlah data , menggunakan
$query->num_rows();
yang akan mengembalikan jumlah data yang di query. Hanya untuk query select


$query = $this->db->query('SELECT name, title, email FROM my_table');
echo 'Total Results: ' . $query->num_rows();

Database: menggunakan Dalam Codeigniter

Untuk menggunakan database, pastikan konfigurasi telah dipasang terlebih dahulu. Untuk konfigurasi dapat membaca pada penjelasan configurasi di halaman selanjutnya

Mengaktifkan/Menjalankan Database

Untuk menjalankan dapat melalui beberapa proses

  1. Lakukan pemanggilan

    $this->load->database();

  2. memasukkan database kedalam config autoload