消息:未定义的属性:CI_DB_mysqli_driver :: $ query

时间:2018-01-31 19:12:22

标签: codeigniter

我在CodeIgniter中遇到了问题。

我的代码:

 <?php 
   $kullanici_yetki_id=$this->session->user_sess['id'];
   $result= array(
        $this->db->select('*'),
        $this->db->from('menuler'),
        $this->db->join('menu_yetki', 'menuler.menu_id=menu_yetki.menu_id'),
        $this->db->where('menuler.is_active', '1'),
        $this->db->where('user_id', $kullanici_yetki_id),
        $this->db->where('durum', "1"),
        $this->db->limit('1')   
                );      
        $sorgu=$this->db->query->$result();
        if($sorgu->num_rows()>0){
        foreach ($sorgu as $row) {
            echo $row->menu_adi;

        } } else{
            echo "nope";
        }

      ?>

当我运行它时,它会返回此错误:

  

消息:未定义属性:CI_DB_mysqli_driver :: $ query

     

文件名:admin / _leftmenu.php行号:34

     

回溯:

     

文件:C:\ wamp64 \ www \ bireberberci \ application \ views \ admin_leftmenu.php   行:34函数:_error_handler

     

文件:   C:\ wamp64 \ WWW \ bireberberci \程序\控制器\ ADMIN \ Home.php   行:16功能:视图

     

文件:C:\ wamp64 \ www \ bireberberci \ index.php行:315功能:   require_once

而且:

  

遇到严重错误

的PHP错误      

消息:方法名称必须是字符串

     

文件名:admin / _leftmenu.php

     

行号:34

2 个答案:

答案 0 :(得分:1)

您缺少get(),而您的会话部分user_sess ['id']错误

https://www.codeigniter.com/user_guide/general/models.html#loading-a-model

<?php 

    class Example_model extends CI_Model {

        public function example() {
            $data = array();

            $this->db->select('*');
            $this->db->from('menuler');
            $this->db->join('menu_yetki', 'menuler.menu_id=menu_yetki.menu_id');
            $this->db->where('menuler.is_active', '1');
            $this->db->where('user_id', $this->session->userdata('id'));
            $this->db->where('durum', "1");
            $this->db->limit('1');

            $sorgu = $this->db->get();

            if($sorgu->num_rows() > 0) {

            foreach ($sorgu->result() as $row) {
                $data[] = $row->menu_adi;
            } 

            } 

            return $data;

    }
}

答案 1 :(得分:1)

你很接近,但你的语法有点过时了。有关详细信息,请参阅有关query builder的手册。

您最大的错误是将所有数据库调用放入数组中。这更接近你想要的。

$kullanici_yetki_id = $this->session->userdata['id'];

$this->db->from('menuler');
$this->db->join('menu_yetki', 'menuler.menu_id=menu_yetki.menu_id');
$this->db->where('menuler.is_active', '1');
$this->db->where('user_id', $kullanici_yetki_id);
$this->db->where('durum', "1");
$this->db->limit('1');

$sorgu = $this->db->get();

if ($sorgu->num_rows() > 0) {
    foreach ($sorgu->result() as $row) {
        echo $row->menu_adi;
    }
} else {
    echo "nope";
}