php - php pdo json 编码数组
问题描述
您好,我想在数据库的菜单内容数据中打印“标题”,但出现错误。我对json不太了解,但由于我的研究,出现了这样的东西,错误代码如下
Warning: Illegal string offset 'title' in menu.php on line 59
mysql 数据库数据 menu_content
[{"title":"HelloWord","address":"HelloAdres","phone":"HelloPhone","submenu":[{"email":"HelloSubmenuEmail","phone":"HelloSubmenuPhone","fax":"HelloSubmenuFax"}]}]
pdo
$query = $db->prepare('SELECT * FROM menu ORDER BY menu_id DESC');
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
桌子
<tbody>
<?php foreach ($rows as $row): ?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?php json_decode($row['menu_content']['title'],true) ?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
解决方案
您应该在尝试使用其部分之前转换 JSON 列。
<tbody>
<?php
foreach ($rows as $row):
$menu = json_decode($row['menu_content']);
?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?= $menu[0]->title ?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php
endforeach;
?>
</tbody>
推荐阅读
- java - JavaFX BooleanBinding 部分适用于多重验证
- python - Tensorflow 预测两个句子相互跟随的可能性
- python - 使用熊猫应用获取子DataFrame中的行索引
- input - 检查输入字段是否为空或在赛普拉斯测试中无法正常工作
- java - 如何打印带有数字和星星的半金字塔?
- java - Pentaho 用户控制台、LDAP、TLS 协商失败
- react-native - 当我完成裁剪图像而没有任何错误日志时,应用程序会自动崩溃。我使用了世博会图像选择器
- go - 不同连接上不同主机之间的TCP连接
- sqlite - 根据记录的关联表中存在的值检索记录
- asp.net-core - 使用 .NET Core 通过 Sustainsys 进行 SAML2 登录的多个 IDP