Category: codeigniter

ติดต่อฐานข้อมูลหลายอันใน codeigniter

การติดต่อฐานข้อมูลใน CI เราต้องไปแก้ไขไฟล์

/applications/config/database.php

แก้ไขโค๊ดส่วนนี้เพื่อใช้ติดต่อกับฐานข้อมูล

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'xxx';
$db['default']['password'] = 'xxx';
$db['default']['database'] = 'xxx';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = 'application/cache';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

เวลาใช้งานก็สามารถใช้ได้โดยเขียน SQL แล้ว query หรือ active record ก็ได้
// query
$SQLCom = "SELECT * FROM `members`";
$members = $this->db->query($SQLCom)->result_array();
// active record
$members = $this->db->get("members");

แต่ถ้าต้องการติดต่อฐานข้อมูลมากกว่า 1 ฐานข้อมูล
เราสามารถเพิ่มการเชื่อต่อในไฟล์ database.php ได้ตามนี้

$db['db2']['hostname'] = "localhost";
$db['db2']['username'] = "root";
$db['db2']['password'] = "";
$db['db2']['database'] = "other_database_name";
$db['db2']['dbdriver'] = "mysql";
$db['db2']['dbprefix'] = "";
$db['db2']['pconnect'] = FALSE;
$db['db2']['db_debug'] = FALSE;
$db['db2']['cache_on'] = FALSE;
$db['db2']['cachedir'] = "";
$db['db2']['char_set'] = "utf8";
$db['db2']['dbcollat'] = "utf8_general_ci";
$db['db2']['swap_pre'] = "";
$db['db2']['autoinit'] = TRUE;
$db['db2']['stricton'] = FALSE;

เวลาเรียกใช้งานก็ตามนี้เลย
$db2 = $this->load->database("db2", TRUE);
$workers = $db2->get("workers");
// จะใช้การ query คำสั่งก็ได้ ไม่ผิดกติกา

แบบนี้เราจะติดต่อฐานข้อมูลกี่อันก็ได้แล้วแต่ง่ายๆ เลย

เอา index.php ออกจาก URL ใน codeigniter

ช่วงนี้เริ่มเปลี่ยนมาใช้ codeigniter ได้พักใหญ่ๆ แล้ว แต่ก็ต้องคอยค้นหาวิธีเอา index.php ออกจาก URL ตลอด ซึ่งก็ไม่พ้น google นี่แหละ ตอนนี้ก็เลยเอามาลงไว้เผื่อคราวหน้าจะได้ไม่ต้องไปหาที่ไหนอีกละ

ขั้นตอนแรก สร้างไฟล์ .htaccess ใส่โค๊ดตามนี้

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /

 RewriteCond %{REQUEST_URI} ^system.*
 RewriteRule ^(.*)$ /index.php?/$1 [L]

 RewriteCond %{REQUEST_URI} ^application.*
 RewriteRule ^(.*)$ /index.php?/$1 [L]

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>

จากนั้นแก้ไฟล์ application/config/config.php

หาบรรทัดที่เขียนว่า


$config['index_page'] = 'index.php';

ให้เอา index.php ออกไป

แค่นี้ก็เสร็จแล้ว ขอให้สนุกกับการเขียนนะครับ