Narisa.com: ถามเรื่อง CodeIgniter ครับ - Narisa.com

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

ถามเรื่อง CodeIgniter ครับ CodeIgniter+ADOdb Rate Topic: -----

#1 User is offline   totti 

  • Member
  • PipPip
  • Group: Members
  • Posts: 176
  • Joined: 09-November 05

Posted 20 March 2008 - 03:57 PM

ผมจะนำ libary ADOdb เข้ามาใช้ใน CodeIgniter ไม่ทราบว่ามีใครลองแล้วมั่งคับ

CodeIgniter ใช้ version 1.6.1
ADOdb ใช้ version 5.04

อันดับแรกซึ่งผมได้ทำตาม CodeIgniter/wiki ดังนี้คับ
ผมนำ ADOdb ไปวางไว้ที่ system/application/libraries/adodb/

จากนั้นได้สร้างไฟล์ system/application/init/init_adodb.php ซึ่งมี code ตามนี้คับ

Quote

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

if (!function_exists('_init_adodb_library')) {
function _init_adodb_library(&$ci) {
$db_var = false;
$debug = false;

// try to load config/adodb.php
// extra parameter comes from patch at http://www.codeignit...onfigLoadPatch/
// without this patch, if config/adodb.php doesn't exist, CI will display a fatal error.
if ($ci->config->load('adodb',true)) {
$cfg = $ci->config->item('adodb');
if (isset($cfg['dsn'])) {
$dsn = $cfg['dsn'];
}

// set db_var if it's set in the config file, or false otherwise
$db_var = isset($cfg['db_var']) && $cfg['db_var'];

$debug = isset($cfg['debug']) && $cfg['debug'];
}

if (!isset($dsn)) {
// fallback to using the CI database file
include(APPPATH.'config/database'.EXT);
$group = 'default';
$dsn = $db[$group]['dbdriver'].'://'.$db[$group]['username']
.':'.$db[$group]['password'].'@'.$db[$group]['hostname']
.'/'.$db[$group]['database'];
}

// $ci is by reference, refers back to global instance
$ci->adodb =& ADONewConnection($dsn);

if ($db_var) {
// also set the normal CI db variable
$ci->db =& $ci->adodb;
}

if ($debug) {
$ci->adodb->debug = true;
}
}
}

if ( ! class_exists('ADONewConnection') )
{
require_once(APPPATH.'libraries/adodb/adodb.inc'.EXT);
}

$obj =& get_instance();
_init_adodb_library($obj);
$obj->ci_is_loaded[] = 'adodb';

?>


พอเรียกใช้งานมัน error ดังนี้คับ

Quote

An Error Was Encountered
Unable to load the requested class: adodb

0

#2 User is offline   totti 

  • Member
  • PipPip
  • Group: Members
  • Posts: 176
  • Joined: 09-November 05

Posted 30 March 2008 - 11:43 AM

ทำได้ละคับ หลังจากว่างมานั่งเล่นต่อ

เข้าไปเจอที่นี่คับ My Adodb Library integration

ทำดังนี้คับ
1 วาง ADOdb ไว้ที่ applications/libraries/adodb
2 สร้างไฟล์ adodb_loader.php ไว้ที่ applications/libraries

Quote

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Adodb_loader
{
function Adodb_loader($params=null)
{
// check if adodb already loaded
if (!class_exists('ADONewConnection'))
{
require_once(APPPATH.'libraries/adodb/adodb.inc'.EXT);
}

// database handler's name, defaults to 'adodb'
$dbh = (isset($params['name'])) ? $params['name'] : 'adodb';

// the db settings group from the database.php config
$db_group = (isset($params['group'])) ? $params['group'] : '';

$this->_init_adodb_library($dbh,$db_group);
}

function _init_adodb_library($dbh,$db_group)
{
// get CI instance
$CI =& get_instance();

// get database config
include(APPPATH.'config/database'.EXT);

// check which database group settings to use
// default to database setting default
$db_group = (!empty($db_group)) ? $db_group : $active_group;
$cfg = $db[$db_group];

// check that driver is set
if (isset($cfg['dbdriver']))
{
$CI->$dbh =& ADONewConnection($cfg['dbdriver']);

// set debug
$CI->$dbh->debug = $cfg['db_debug'];

// check for persistent connection
if ($cfg['pconnect'])
{
// persistent
$CI->$dbh->PConnect($cfg['hostname'],$cfg['username'],$cfg['password'],$cfg['database']) or die("can't do it: " . $CI->$dbh->ErrorMsg());
}
else
{
// normal
$CI->$dbh->Connect($cfg['hostname'],$cfg['username'],$cfg['password'],$cfg['database']) or die("can't do it: " . $CI->$dbh->ErrorMsg());
}

// use associated array as default format
$CI->$dbh->SetFetchMode(ADODB_FETCH_ASSOC);
}
else
{
die("database settings not set");
}
}
}

?>


จากนั้น config database ละก็ใช้งานได้เลยคับ

ตัวอย่าง

Quote

// will create $this->adodb and use the default settings group in config/database.php
$this->load->library('adodb_loader');

// will create $this->db1 and use the default settings group
$this->load->library('adodb_loader',array('name'=>'db1'));

// will create $this->db2 and use the settings group 'setting1' from the config
$this->load->library('adodb_loader',array('name'=>'db2','group'=>'settings1'));

0

#3 User is offline   TripleA 

  • Member
  • PipPip
  • Group: Members
  • Posts: 129
  • Joined: 03-December 05

Posted 30 March 2008 - 12:09 PM

เป็นประโยชน์มาก ๆ เลยครับ
ขอบคุณคุณ totti มากเลยนะครับ
0

#4 User is offline   totti 

  • Member
  • PipPip
  • Group: Members
  • Posts: 176
  • Joined: 09-November 05

Posted 30 March 2008 - 07:02 PM

View PostTripleA, on Mar 30 2008, 12:09 PM, said:

เป็นประโยชน์มาก ๆ เลยครับ
ขอบคุณคุณ totti มากเลยนะครับ



ขอบคุณคับ พอดีไม่มีเวลามาเล่นตัวนี้เท่าไรเลย มาโพสถามไว้ ซึ่งกำลังเปลี่ยนใจมาใช้ PDO แทน ADOdb ดีป่าว ไม่ทราบว่าตัวไหนมันไวกว่า ง่ายกว่า น่ะคับ กำลังเทสๆ อยู่ คืบหน้ายังงัยเด่วจะมาบอกเล่าเก้าสิบกันฟังอีกที
0

#5 User is offline   roofimon 

  • Star
  • Group: Star
  • Posts: 680
  • Joined: 15-April 04

Posted 31 March 2008 - 11:37 AM

ผมใช้ PDO ครับ
0

#6 User is offline   thetoy 

  • Junior Member
  • Pip
  • Group: Members
  • Posts: 63
  • Joined: 27-May 05

Posted 31 March 2008 - 11:24 PM

View Posttotti, on Mar 30 2008, 07:02 PM, said:

View PostTripleA, on Mar 30 2008, 12:09 PM, said:

เป็นประโยชน์มาก ๆ เลยครับ
ขอบคุณคุณ totti มากเลยนะครับ



ขอบคุณคับ พอดีไม่มีเวลามาเล่นตัวนี้เท่าไรเลย มาโพสถามไว้ ซึ่งกำลังเปลี่ยนใจมาใช้ PDO แทน ADOdb ดีป่าว ไม่ทราบว่าตัวไหนมันไวกว่า ง่ายกว่า น่ะคับ กำลังเทสๆ อยู่ คืบหน้ายังงัยเด่วจะมาบอกเล่าเก้าสิบกันฟังอีกที



พอดีไปเจอบทความนี้ครับ เผื่อจะเป็นประโยชน์
PHP Database Functions vs. PEAR::DB vs. ADOdb (and PDO)
http://joseph.randomnetworks.com/archives/...eardb-vs-adodb/

ตัวผมใช้ adodb ครับ แต่ว่าในความรู้สึกแล้ว PDO ดูจะมีภาษีอยู่นิดๆ (ได้ส่งภาษีกันหรือยังครับ :o )
ส่วนเรื่องความง่าย คงแล้วแต่ความถนัดของแต่ละคนครับ
0

#7 User is offline   totti 

  • Member
  • PipPip
  • Group: Members
  • Posts: 176
  • Joined: 09-November 05

Posted 01 April 2008 - 02:16 AM

Quote

พอดีไปเจอบทความนี้ครับ เผื่อจะเป็นประโยชน์
PHP Database Functions vs. PEAR::DB vs. ADOdb (and PDO)
http://joseph.randomnetworks.com/archives/...eardb-vs-adodb/

ตัวผมใช้ adodb ครับ แต่ว่าในความรู้สึกแล้ว PDO ดูจะมีภาษีอยู่นิดๆ (ได้ส่งภาษีกันหรือยังครับ :o )
ส่วนเรื่องความง่าย คงแล้วแต่ความถนัดของแต่ละคนครับ


กำลังจะมานั่งหาหาบทความแนวนี้อยู่พอดีเลยคับ สบายเลย :lol:

ตอนนี้ตัดสินใจได้แล้วคับ คงใช้ ADOdb ต่อไป เนื่องจากใช้มันมาหลายงานแล้ว เลยยังคงต้องใช้ต่อไปคับ :P


ปล. ใครเล่น ADOdb ext กับ ADOdb Lite มั่งแล้วมาบ้างคับ
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users