【问题标题】:Fatal error: Call to a member function fetch() on a non-object in致命错误:在非对象上调用成员函数 fetch()
【发布时间】:2013-02-02 20:53:46
【问题描述】:

我在我的网站中为我的群组编写了以下代码..

public function set_group_id($group_id)
    {

        $db2        = & $this->network->db2;
        /* if( $this->id ) {
            return FALSE;
        } */
        if( ! $group_id ) {
            return FALSE;
        }
        if( ! $g = $this->network->get_group_by_id($group_id) ) {
            return FALSE;
        }
        if( !$g->is_public && $this->user->id>0 && !$this->user->is_network_admin ) {
            $users  = $this->network->get_group_invited_members($g->id);
            if( !$users || !in_array(intval($this->user->id),$users) ) {
                return FALSE;
            }
        }

         $D->i_am_network_admin  = ( $this->user->is_logged && $this->user->info->is_network_admin > 0 );
         $D->i_am_admin      = $D->i_am_network_admin;

         if( !$D->i_am_network_admin ) {
         $D->i_am_admin  = $db->fetch('SELECT id FROM groups_admins WHERE group_id="'.$g->id.'" AND user_id="'.$this->user->id.'" LIMIT 1') ? TRUE : FALSE;
         }


        if( $g->mojaz && !$this->user->i_am_admin  ) {
            return FALSE;
        }
        $this->group    = $g;
        $this->to_user  = FALSE;
        return TRUE;
    }

我在这一行的错误...

             $D->i_am_admin  = $db->fetch('SELECT id FROM groups_admins WHERE group_id="'.$g->id.'" AND user_id="'.$this->user->id.'" LIMIT 1') ? TRUE : FALSE;

如果用户是网站管理员,我想为网站组创建限制器,他可以发送帖子 或者如果用户是组的管理员可以发送帖子,否则返回 false。

【问题讨论】:

    标签: php fatal-error


    【解决方案1】:

    在您的错误行中 $db 为空,因为 $db 尚未在您的函数中声明 set_group_id()。
    我只看到数据库对象 $db2

    $db2 =& $this->network->db2
    

    尝试将 $db 替换为 $db2。如果 $db2 包含正确的数据库对象和打开连接的句柄,它将起作用

    【讨论】:

      猜你喜欢
      • 2012-05-14
      • 2013-10-01
      • 1970-01-01
      • 2013-11-25
      • 2012-05-30
      • 2016-08-30
      • 2015-02-06
      • 2013-11-19
      • 2017-04-30
      相关资源
      最近更新 更多