在通过PHP从MySQL检索数据时,它会检索一个不存在于数据库中的额外行。为什么呢?
<?php
$con = mysqli_connect('host', 'username', 'password', 'database');
$sql = $con->query("SELECT * FROM info");
while($row = $sql->fetch_array()) {
$image = $row['image_path'];
$caption = $row['caption'];
$id = $row['id'];
?>
<div class="col-md-4">
<div class="thumbnail">
<img src=<?php echo $image;?>>
<div class="caption text-center"><h3><?php echo $caption;?></h3></div>
<button class="btn btn-default" onclick="modal(<?php echo $id;?>)">View</button>
</div>
</div><!-- Column END -->
<?php
}
?>
答案 0 :(得分:2)
因为你正在使用
$row = $sql->fetch_array()
;
默认为
$row = $sql->fetch_array(MYSQLI_BOTH);
并在结果集的末尾返回NULL值,因为MYSQLI_ROW
MYSQLI_BOTH
参数
你可以这样做来解决它:
while ($row = $sql->fetch_array(MYSQLI_ASSOC)) {