Уловимая фатальная ошибка: в json_decode

Я хочу исключить формат представления JSON и вернуть данные в виде строки с запятой.

Когда я использую json_decode($row['test_row']), он возвращает меня

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

<?php 
try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password );    
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = 'SELECT * FROM database.test;' ;
        $get_all_data = $conn->prepare($sql);
        $get_all_data -> execute(array($sql));
        $all_row = $get_all_data->fetch(PDO::FETCH_ASSOC); 
        $all = $all_row;
    }
   catch(PDOException $e)
         {
           echo $sql . "<br>" . $e->getMessage();
         }

вот стол, заголовок стола:

    echo "<tbody>";
    echo "<table>";
          $conn = null;   
    while($row = $get_all_data->fetch(PDO::FETCH_ASSOC)) 
{   

echo "<tr>  
       <td>" . json_decode($row['my_data']) . "</td> 
      </tr>";  
} 
    echo "</tbody>";
    echo "</table>";  ?>

Если я позволю $row['my_data'], он вернет мне данные из базы данных в формате JSON


person Michael Shtefanitsa    schedule 30.03.2018    source источник
comment
Не могли бы вы добавить к своему вопросу пример $row['my_data']? Спасибо.   -  person Syscall    schedule 30.03.2018
comment
json decode преобразует json string в object, но вам скорее нужна строка, а скорее преобразование ее в массив, а затем используйте implode для слияния или некоторых циклов, зависит от $row['my_data']   -  person frunkad    schedule 30.03.2018


Ответы (1)


json_decode возвращает объект PHP, который затем вы пытаетесь напечатать в виде строки, используя echo. Это бросает эту ошибку.

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

Поскольку я не знаю значения $row['my_data'], поэтому могу предложить вам точный фрагмент кода.

person d.coder    schedule 30.03.2018
comment
Большое спасибо, я забыл использовать функцию implode(). Теперь работает корректно. - person Michael Shtefanitsa; 30.03.2018