我在使用php从mysql数据库中删除图像时遇到问题。向数据库添加图像效果很好,它将显示/撤消图像没有问题,但它不会正确删除它们。它不会删除所选图像,也不会删除数据库中的第一个图像。我已经使用特定的文件名和id测试了它,所以我知道它有效,它似乎并不是针对所选图像。
图库表包含:id,imagename,assoc_table(category)& assoc_object(页图像被附加到)。
希望这是有道理的,并提前多多感谢。
这是用于添加和显示图像的代码:
$galleryQuery=mysql_query("select * from isgallery where assoc_object = '".$_POST['id']."'");
echo '<ul class="gallery">'. PHP_EOL;
while($galleryResult=mysql_fetch_array($galleryQuery)) {
echo '<li><img src="../../images/properties/gallery/'.$galleryResult['imagename'].'" alt="'.$galleryResult['id'].'" width="120" height="120" class="image" /><br />
<label for="delGallery"><input type="checkbox" name="delGallery" value="1" /> Delete this image?</label><br />
</li>
'. PHP_EOL;
}
echo '</ul><br /><br />' . PHP_EOL;
echo '<label for="galleryFile">Add Image (*.jpg / *.gif): </label><input type="file" name="galleryFile" value=""><br />
'.($_POST['imagename'] ? '
<label for="imagename"></label><img src="../../images/properties/gallery/'.$_POST['imagename'].'" width="120" class="image"><br />
<label for="delGallery"></label><input type="checkbox" name="delGallery" value="1" style="margin:0 0 0 7px;"> Delete this image?<br />
' : NULL).'
这是用于从数据库中删除的代码:
if ($_POST['delGallery']=='1') {
file_exists($galleryFileDir.'/'.$_POST['imagename']) ? unlink($galleryFileDir.'/'.$_POST['imagename']) : NULL;
unset($_POST['imagename']);
$sql = "DELETE FROM isgallery WHERE imagename = '".$_POST['imagename']."'";
mysql_query($sql);
}
答案 0 :(得分:1)
答案 1 :(得分:0)
移动
unset($_POST['imagename']);
在第二个例子中的$ sql之后。您正在删除$ _POST ['imagename']并在之后尝试使用它。
答案 2 :(得分:0)
不对的地方:
unset($_POST['imagename']);
$sql = "DELETE FROM isgallery WHERE imagename = '".$_POST['imagename']."'";
答案 3 :(得分:0)
请检查您正在使用的用户之前是否已在该表上授予删除权限
希望有所帮助