安静
PHP技术博客

120917 phpcms dbfactory 重建链接的时候单实例引发的问题

phpcms 在使用得过程中无奈的一直出现BUG 也不能全怪 phpcms 主要是加载的类库中 mysql 有 db设置选项

 pc_base::load_sys_class("get_model", "model", 0);
                                                $get_db = new get_model();
                                                //var_dump($get_db);
                                                $r = $get_db->sql_query("select * from v9_news where catid in ($catid) and status=99
 and timetask!=0 order by id desc LIMIT 20");

执行出错 db 到其他数据库去了

当程序有多mysql 加载得时候 phpcms 并没有严格的去设置 database

有些不严谨的代码库中 加载了 mysql执行

mysql_select_db(“test_db”);

但未重置得时候

phpcms/libs/classes/db_factory.class.php


        /**
         * 获取数据库操作实例
         * @param $db_name 数据库配置名称
         */
        public function get_database($db_name) {
                if(!isset($this->db_list[$db_name]) || !is_object($this->db_list[$db_name])) {
                        $this->db_list[$db_name] = $this->connect($db_name);
                }
                return $this->db_list[$db_name];
        }

这样得 得无效 判断链接 导致 执行得时候 错库

推荐个php代码 可查看当前所使用的数据库信息

$query="select database() AS `db`, user() AS `user`"; 
$result=mysql_query($query); 
$row = mysql_fetch_assoc($result); 
echo 'database: '.$row['db'],'

'; echo 'user: '.$row['user'];

赞(0) 打赏
未经允许不得转载:AJ's Blog » 120917 phpcms dbfactory 重建链接的时候单实例引发的问题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏