Ошибка PHP / Mysql - PullRequest
       4

Ошибка PHP / Mysql

0 голосов
/ 17 июня 2011

Модель

<?php 
class Blogm extends CI_Model{

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }

    function get()
    {
        $query = $this->db->get('post', 1);
        return $query->result();
    }
}
?> 

View

<h2>

<?php 
foreach($query as $a):
echo $a;
endforeach;
?>

</h2>
</body>
</html> 

Контроллер

<?php
class Blog extends CI_Controller{

    public function __construct(){
        parent::__construct();
        $this->load->model('Blogm','',TRUE);
    }
    public function index(){

        $data['title'] = 'Sblog';
        $data['message'] = 'My Sblog';
        $data['menu_item'] = array('home','contact');

        $this->load->view('headerv.php', $data);

        $data['query'] = $this->Blogm->get();

        $this->load->view('bodyv.php', $data);
        //$this->load->view('sidebarv.php');
        //$this->load->view('footerv.php');
    }
}

    ?> 

База данных

id    int(11)            No    None    auto_increment                                  
    title    text
MIME: text/plain    latin1_swedish_ci        No    None                                    
    content    text
MIME: text/plain    latin1_swedish_ci        No    None                                    
    time    timestamp        on update CURRENT_TIMESTAMP    No    CURRENT_TIMESTAMP    on update CURRENT_TIMESTAMP                                  
    posted    int(1)            No    0 

База данных имеет только одну запись ...

Это моя ошибка ..

Обнаружена ошибка PHP

Серьезность: 4096

Сообщение: объект класса stdClass не может быть преобразован в строку

Имя файла: views / bodyv.php

Номер строки: 5

Ответы [ 3 ]

2 голосов
/ 17 июня 2011

Даже если вы используете ->get() с ОГРАНИЧЕНИЕМ 1, оно все равно возвращает набор результатов.

Что вы на самом деле делаете, так это циклически просматриваете свой набор и распечатываете один объект, что невозможно сделать, если у него нет метода toString(). Вот почему КИ жалуется Object of class stdClass could not be converted to string.

Измените свой код на

foreach($query as $obj):
   echo $obj->property; //where property is a column
endforeach;

http://codeigniter.com/user_guide/database/active_record.html

1 голос
/ 17 июня 2011

Я думаю, все, что вам нужно сделать, это добавить:

$ a-> title или информацию, которую вы хотите ...

1 голос
/ 17 июня 2011
foreach($query as $a):
echo $a;
endforeach;

Сообщение об ошибке довольно очевидно.

Вы пытаетесь перебрать членов объекта запроса к базе данных $query и echo его членов в виде строк. По крайней мере один из них является объектом и, следовательно, ошибкой.

Вместо этого выполните итерацию по набору результатов, представленному $query, с соответствующими функциями API, предоставленными вашей абстракцией базы данных.

(Рассмотрев другие действия по этому вопросу, может оказаться, что "CI" позволяет использовать циклы как часть этого API. Обратитесь к документации, чтобы найти правильный способ итерации.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...