функция print ()!Ошибка 4096 объект не может быть преобразован в строку - PullRequest
0 голосов
/ 01 августа 2011

У меня есть переменная с именем $ result , в которой должны храниться все результаты моего запроса к базе данных, однако при запуске print ($ result) выдается сообщение об ошибке:

Произошла ошибка PHP

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

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

Имя файла: models / control_panel_model.php

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

Вот мой код модели:

public function view_record($record_id)
        {
            $criteria = array 
            (
                'procedure_id' => $record_id
            );

            echo $this->db->count_all('procedure');
            return;
            $this->db->select('procedure.procedure_id, procedure.patient_id, procedure.department_id, procedure.name_id , procedure.dosage_id');
            $this->db->from ('procedure');

            $this->db->join('patient', 'patient.patient_id = procedure.patient_id', 'inner');
            $this->db->join('department', 'department.department_id = procedure.department_id', 'inner');
            $this->db->join('procedure_name', 'procedure_name.procedure_name_id = procedure.name_id', 'inner');
            $this->db->join('dosage', 'dosage.dosage_id = procedure.dosage_id', 'inner');

            $this->db->where('procedure_id', $record_id);
            $result = $this->db->get();


            print($result);


            return ;


        }

Причина, по которой я использую функцию печати, состоит в том, чтобы просто проверить, работает ли мой запрос и имеет ли он значения. Как мне этого добиться.

Спасибо

EDIT !!!

Вот что я получаю в var_dump ();

object(CI_DB_mysql_result)#22 (8) { 
  ["conn_id"]=> resource(30) of type (mysql link persistent)
  ["result_id"]=> resource(40) of type (mysql result)
  ["result_array"]=> array(0) { }
  ["result_object"]=> array(0) { }
  ["custom_result_object"]=> array(0) { }
  ["current_row"]=> int(0)
  ["num_rows"]=> int(0) 
  ["row_data"]=> NULL
}

Я добавил следующий код:

if ($ result-> num_rows> 0) { эхо "Данные"; } еще { эхо "Нет данных"; }

он говорит, что есть "НЕТ ДАННЫХ" поэтому мой запрос должен быть дерьмовым и неправильным, поэтому мне нужно перепроектировать запрос. В МОЕЙ БАЗЕ ДАННЫХ ЕСТЬ ДАННЫЕ, ТАК должен быть запрос

===========================================

Вот моя схема http://i.imgur.com/Dju0G.png

enter image description here

Ответы [ 4 ]

1 голос
/ 01 августа 2011

В рассматриваемом объекте (CI_DB_mysql_result) отсутствует реализация __toString , поэтому вы получаете ошибку.

Однако это может означать, что объект не может быть преобразован в строку.

Вместо этого вы должны сначала самостоятельно преобразовать данные объектов в строку для цели вашей операции print. Я не могу сказать из кода, который вы опубликовали, какой именно вы ищете, поэтому я ничего не могу добавить к этому.

См. Генерация результатов запроса и Класс активной записи .

Редактировать: Для быстрой и грязной строковой печати вы можете использовать print_r, однако я не знаю, действительно ли это полезно для вашего случая:

$result = $this->db->get();
print_r($result);

Это сопоставимо с предложением использовать var_dump. Вы должны сказать, какую информацию вы хотели бы распечатать на самом деле, и для этого вы должны знать тип данных, которые возвращает база данных. См. Документацию get() Класс активной записи , где приведены примеры работы с возвращаемыми значениями.

1 голос
/ 30 ноября 2011

Используйте функцию result_array () , которая возвращает результат запроса в виде чистого массива или пустого массива, если результат не получен:

...
$result = $this->db->get()->result_array();
print($result);
...
0 голосов
/ 25 ноября 2013

num_rows - это метод, а не свойство.

0 голосов
/ 01 августа 2011

Метод get () не возвращает результат.Попробуйте изменить свой запрос и строки результата $ на что-то вроде

$query = $this->db->get_where('procedure_id', $record_id);
$result = $this->db->result();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...