Я пытаюсь отобразить данные из моей локальной базы MySQL, используя следующий PHP и разметку.Как разрешить ошибку смещения строки и отобразить таблицу в следующем фрагменте кода?
<html>
<table>
<tr>
<th>field1</th>
<th>field2</th>
<th>field3</th>
</tr>
<?php
$dbh = new PDO("mysql:host=localhost;dbname=dbtest", 'root', 'root');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth = $dbh->prepare("SELECT `fruit_id`, `name`, `variety` FROM fruit");
$sth->execute();
?>
<?php foreach($sth->fetch(PDO::FETCH_ASSOC) as $row) : ?>
<tr>
<td><?php echo $row["fruit_id"]; ?></td>
<td><?php echo $row["name"]; ?></td>
<td><?php echo $row["variety"]; ?></td>
</tr>
<?php endforeach;?>
</table>
Я получаю ошибочные ошибки смещения String для того же самого. Кроме того, я думаю, из-за того, что я не могу отобразить таблицу. Я новичок в работе с базами данных с использованием PHP, и я действительно смотрел на другие вопросы, связанные с ошибками Ошибки String Offset, прежде чем публиковать мои собственные, но из-за моего опыта на уровне новичка я был не в состоянии понять ответы. Может ли кто-нибудь помочь мне удалить ошибки и отобразить таблицу?
Ваш 'foreach' линия должна быть' в то время как ($ строка = $ sth-> выборки (PDO :: FETCH_ASSOC)) ', насколько я могу сказать, как' fetch' возвращает одну строку за один раз, так в вашем foreach, $ row на самом деле является столбцом, а не строкой. –