Wednesday, February 21, 2018

Fix error Illegal string offset 'server' postgre_driver codeigniter 2

Fix error Illegal string offset 'server' postgre_driver codeigniter 2

Pembahasan yang sudah berlalu, karena pada kenyataannya, mungkin hanya beberapa saja yang masih menggunakan codeigniter dibawah versi 3. Tapi itu bukan masalah, intinya disini saya hanya ingin berbagi, masalah sudah berlalu atau tidak urusan belakangan.

Kasus yang akan saya bahas kali ini mengenai postgre driver di codeigniter 2, dimana di versi ini terdapat bug kecil ketika kamu ingin mengambil last id insert. Jelasnya itu terletak di :

$this->db->insert_id();

Pada saat error terjadi, saya menggunakan :
  • Codeigniter 2.2
  • PHP 5.6
  • Postgre 9.4
 Jika kamu menggunakan codeigniter versi 3 ke atas, error ini sudah tidak ada, karena sudah di tutup oleh tim developer codeigniter. Untuk kamu yang belum move on ke codeigniter terbaru, maka ada cara sederhana untuk menutup error ini, cukup mudah, seperti ini :

Tahap awal, buka file postgre_driver.php yang ada di MY_CI/system/database/drivers/postgre.

Jika file sudah dibuka, ada dua cara untuk memperbaiki error ini,

Pertama
Lihat pada baris 331 pada file postgre_driver.php, kemudian komen sintak ini

$v = $this->_version();
$v = $v['server'];

Dan sematkan sintak ini tepat di bawah sintak yang barusan di komen

$v = pg_version($this->conn_id); $v = isset($v['server']) ? $v['server'] : 0;

Lengkapnya akan tampak seperti ini

/*$v = $this->_version();
$v = $v['server'];*/

$v = pg_version($this->conn_id); $v = isset($v['server']) ? $v['server'] : 0;

Kedua
Masih di file postgre_driver.php, cari fungsi dengan nama _version(), jika kamu menggunakan sublime cukup tekan CTRL+R lalu ketikan _version.

Selanjutnya, replace fungsi _version() dengan sintak dibawah ini

function _version()
{
 return @pg_version($this->conn_id); 
 // return "SELECT version() AS ver";
}

Sekarang coba jalankan ulang program codeigniter kamu, dan bye bye error :)

Mungkin cukup sampai disini pembahasan kali ini, semoga bermanfaat yah.

Tschuss...!


Saya hanya seorang "newbie" yang baru bisa ngoding lohor kemarin.

This Is The Newest Post


EmoticonEmoticon