Я хочу исключить формат представления JSON и возвращать данные в виде строки с запятой.
Когда я использую json_decode($row['test_row']), он возвращает мне
Catchable fatal error: Object of class stdClass could not be converted to string in 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.
json decode преобразует json string в object, но вам нужна строка, а не преобразование ее в массив, а затем использование implode для слияния или некоторых циклов, зависит от $row['my_data']






json_decode возвращает объект PHP, который затем вы пытаетесь распечатать в виде строки с помощью echo. Это вызывает эту ошибку.
Вам нужно будет сделать это строкой, разделенной запятыми, с помощью implode или подобной функции. Тогда это обязательно сработает.
Поскольку я не знаю значения $row['my_data'], могу предложить вам точный фрагмент кода.
Большое спасибо, я забыл использовать функцию «implode ()». Теперь все работает правильно.
Не могли бы вы добавить к вашему вопросу пример
$row['my_data']? Спасибо.