【发布时间】:2012-11-06 21:32:51
【问题描述】:
我有一个 PHP 网站,我在本地上传了 10 张图片。图片保存在./images 文件夹中,并重新采样到./thumbnails 文件夹中。我使用此查询从数据库中提取 7 个照片文件名。
$imgQuery = "SELECT FileName, Title, Description FROM PICTURE WHERE OwnerID='$id' LIMIT 0,7";
数据库为图片保存PictureID(PK)、OwnerID(UNQ,我的id是2)、FileName(存储文件名)和Title,为图片保存Description。我使用这种方法将 7 个照片文件名、标题和描述传输到一个数组。但是如何从我的./thumbnails 文件夹中提取它们并将它们显示在我的 PHP 页面上?
if($imgResult = mysqli_query($link, $imgQuery))
{
while($imgRow = mysqli_fetch_row($imgResult))
{
$filename[] = $imgRow[0];
$title[] = $imgRow[1];
$description[] = $imgRow[2];
}
}
这是我在正文中显示缩略图t1 的位置。我想知道如何将我的数据库检索到的文件分配给这些变量。描述会根据我的名字而变化
$num = count($filename);
while($i < $num)
{
$i = 0;
print <<<photo
<body>
<form action='MyAlbum.php' method='post'>
<table>
<tr><td colspan='7' ><h2 align='center'><?php echo $name;?>'s Album</h2></td>
</tr>
<tr><td colspan='7' ><?php echo $title[$i];?></td>
</tr>
<tr><td colspan='5' ><?php echo $filename[$i]; ?></td><td colspan='2'><?php echo $description[$i];?> </td>
</tr>
<tr>
<td><?php echo $filename[0];?></td> <td><?php echo $filename[1];?></td> <td><?php echo $filename[2];?></td>
<td><?php echo $filename[3]; ?></td><td><?php echo $filename[4]; ?></td> <td><?php echo $filename[5]; ?></td>
<td><?php echo $filename[6]; ?></td>
</tr>
</table>
</form>
$i++;
</body>
</html>
photo;
}
【问题讨论】:
-
您使用的是
mysqli,所以请使用它支持的proper SQL placeholders。这个 SQL 注入错误没有任何借口。 -
mysqli 是我被教导使用的。假设它在本地与 AMPPS 一起工作得很好。或者你的意思是我需要使用一些
stmt -
我的意思是你应该永远在你的查询中看到像
OwnerID='$id'这样的东西。相反,您应该拥有OwnerID=?,然后调用bind_param来分配the documentation 中的值。你的所作所为非常鲁莽,最终会给你带来严重的麻烦。