使用php codeigniter从mysql数据库显示数据时出错

时间:2011-10-09 20:33:50

标签: php mysql codeigniter

我正在尝试显示db的数据。它显示此错误

  <p>Severity: Notice</p>
  <p>Message:  Trying to get property of non-object</p>
  <p>Filename: controllers/schedule.php</p>
  <p>Line Number: 57</p>

  <p>Severity: Notice</p>
  <p>Message:  Trying to get property of non-object</p>
  <p>Filename: controllers/schedule.php</p>
  <p>Line Number: 58</p>

这是我在控制器中的代码,这段代码与此问题有关

$data['rows'] = $this->Model_scheduleSave->save_schedule($data);
$this->load->view('home_view',$data);

这是我的观点

if($rows) {
            //var_dump($rows);
            foreach(rows as $r) : 
                "<div>". $r->client_url ."</div>";
                "<div>". $r->admin_url ."</div>"; 
            endforeach;
        }

这是我的模特

public function save_schedule($data) {
    $query = "INSERT INTO schedule VALUES('',?,?,?,?,?,?,?)";
    $result = $this->db->query($query,$data);
    if($result) {
        $get_urls = "SELECT client_url,admin_url FROM schedule ORDER BY id DESC LIMIT 1";
        $results = $this->db->query($get_urls);
        if($results) {
            foreach($results->result() as $rows) {
                $data[] = $rows;
            }
        }
        return $data;
    } else {
        return false;
    }
}

我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

如果您的数据库查询未返回任何结果,该函数将返回传递给函数($data)的参数。这可能会导致您的错误。

另一个注意事项:不要重复使用变量名称。您可以使用$data将参数传递给控制器​​中的函数,然后将结果分配给$data['rows']。您应该使用两个变量,一个用于视图变量,另一个用于函数参数。