用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2712|回复: 6
收起左侧

[HELP] 创建自己的类库全局变量失效 急!!!

[复制链接]
发表于 2010-5-25 18:47:21 | 显示全部楼层 |阅读模式
我在system/application/libraries/文件夹下创建了一个DbObject类
  在类的上边有如下代码,我用的是PDO
PHP复制代码
include(APPPATH.'config/database'.EXT);
//use for gengeral DBObject
$dbh = new PDO($db['default']['dbdriver'].':host='.$db['default']['hostname'].';dbname='.$db['default']['database'], $db['default']['username'], $db['default']['password']);
$dbh->exec("set names 'utf8'");
class DbObject
{
复制代码


我想在DbObject 这个类里边用$dbh这个对像
PHP复制代码
        function get_all()
        {
                global $dbh;
                $sth = $dbh->prepare( 'select * FROM '.'`'.$this->table.'`');
                $sth->execute();       
                if($sth->errorCode() != '00000')
                {
                        print_r($sth->errorInfo());
                        return false;
                }else
                {
                        $rows = $sth->fetchAll(PDO::FETCH_ASSOC);
                        if ($sth->errorCode() != '00000')
                        {
                                print_r($sth->errorInfo());
                                return false;
                        }else return $rows;
                }
        }
复制代码

我又创建一个类Admin
PHP复制代码
include(APPPATH.'libraries/DbObject'.EXT);
class Admin extends DbObject
{
        function __construct()
        {
                parent::__construct( 'admin','admin_id',array('admin_type_id','admin_name', 'admin_password' ,'admin_belonged_org' ,'admin_enabled' ,'admin_realname' ,'admin_desc','admin_status','builtin','last_login_time'));
        }
}
复制代码


在控制器里这样调用
PHP复制代码
include(APPPATH.'libraries/Admin'.EXT);
class Welcome extends Controller {
 
        function Welcome()
        {
                parent::Controller();  
        }
       
        function index()
        {
                $this->load->library('Admin');
                print_r($this->admin->get_all());
                $this->load->view('welcome_message');
        }
}
复制代码

上边这样调用$dbh就是个对像,
如果去调最上的include(APPPATH.'libraries/Admin'.EXT);这句的话
$dbh就为空,感觉$this->load->library('Admin');好像没用,高手指点一下,急着用呢
 楼主| 发表于 2010-5-25 18:52:15 | 显示全部楼层
咋没人理我??急呀
发表于 2010-5-25 23:15:05 | 显示全部楼层
你为什么要自己 include 呢?ci 里不需要 include,请严格按照手册来编写代码。
 楼主| 发表于 2010-5-26 09:49:06 | 显示全部楼层
不用include我咋调用其它页面的变量?
发表于 2010-5-26 10:01:55 | 显示全部楼层
看着你的代码,我无语了,你确实用的是CI的框架,可是代码根本没有框架的痕迹,(框架是不需要自己include的),强烈建议看看书册
 楼主| 发表于 2010-5-26 10:14:35 | 显示全部楼层
要得,我先看看
发表于 2010-5-26 10:17:51 | 显示全部楼层
框架是面向对象的
所有内容都 包含在一个叫做CI的对象里。
$this->CI =& get_instance();

本版积分规则