2012-03-18 3 views
1

Я не знаю почему, но я получаю эту ошибку :Объект класса StdClass не может быть преобразован в строку

Catchable фатальная ошибка: Объект класса StdClass не может быть преобразован в строку

Для этого кода:

$sql = "SELECT * FROM player ORDER BY score DESC LIMIT $begin"; 
        $arr = array(); 
        while($obj = mysql_fetch_object(mysql_query($sql))) { 
          //$arr[] = $obj; 
          echo $obj; 
        } 
+2

Вам нужно что-то вроде 'echo $ obj-> columnname' или просто посмотреть, что находится внутри' var_dump ($ obj) ' –

+1

Не будет ли это выполнение запроса на каждой итерации цикла? – abesto

+0

@abesto Да, будет. –

ответ

3

, который вы используете mysql_fetch_object (который возвращает объект), а затем пытается вывести его как строку. Это не сработает.

В вашем случае вы должны использовать функцию, которая способна печатать содержимое объекта. Есть много, но самые прямые - print_r или var_dump. если вы выведете в контексте HTML, вы можете упаковать тег <pre> вокруг вывода, чтобы сделать его более читаемым или щелкнуть «Просмотр источника» в вашем браузере.

Если вы пишете свои собственные объекты, они также могут быть «преобразованы» в строки путем реализации __toString() magic method

Кроме того, как люди говорят в комментариях, ваш код будет выполняться запрос на каждом проходе петля. Проверьте documentation here и прочитайте примеры.

Примечание. Возможно, вы упростили пример для SO, но не забудьте очистить переменные (например, $begin), чтобы избежать инъекций SQL!

+0

У меня есть Исправимая ошибка в magento.please см. Этот вопрос 'http://stackoverflow.com/questions/15338091/recoverable-error-object-of-class-could-not-be-converted-to-string-in-magento ' –

+0

если вы знаете, тогда ответьте ответ. –

1

Использование print_r или var_dump вместо echo

+1

on print_r: Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_VARIABLE –

+0

@TomasSmith print_r ($ obj); –

Смежные вопросы