PHP删除数据库图片,用路径去删除文件夹下的图片,是指定ID的单张图,我代码错在哪里?

if($_POST['submit3']){$i=$_POST['id'];//echo$i;$r="SELECT*FROM`sy_zhanshi`WHERE`sy_zh... if($_POST['submit3']){$i = $_POST['id'];//echo $i;$r="SELECT * FROM `sy_zhanshi` WHERE `sy_zhanshi`.`id` = '$i'";$que = $db->query($r);$ro = $db->fetch_array($que);$img = $ro['pic'];@unlink(APPROOT.'/sy_shangpin_img/'.$img);$db->query( "DELETE FROM `sy_zhanshi` where `sy_zhanshi`.`id` ='$i' ");$db->Get_admin_msg("admin_shangpin_shouye_list.php","已经成功删除信息");} 怎么只能删除数据库存的路径,删不了图片 ,先写了一个可以删除图片但是不能对应ID去删除。。。。。谢谢拉 展开
 我来答
leonskii
2012-02-08 · 超过26用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:49.2万
展开全部
if($_POST['submit3'])
{
$i = $_POST['id'];
//echo $i;
$r="SELECT * FROM `sy_zhanshi` WHERE `sy_zhanshi`.`id` = '$i'";
$que = $db->query($r);
$ro = $db->fetch_array($que);
$img = $ro['pic'];
@unlink(APPROOT.'/sy_shangpin_img/'.$img);
$db->query( "DELETE FROM `sy_zhanshi` where `sy_zhanshi`.`id` ='$i' ");
$db->Get_admin_msg("admin_shangpin_shouye_list.php","
你这里少贴出文件了。首先你屏蔽掉了 删除文件的错误,既即使文件不存在,也会忽略报错
语句@unlink(APPROOT.'/sy_shangpin_img/'.$img);
其中APPROOT 是个预定义变量。你在你的配置文件里查看一下路径。这里的配置可能是不对。当系统自动删除文件时 由于配置的预定义变量路径不对。而你又恰恰将错误忽略了。这样即便是没有文件,也不会提示错误。当然不能删除文件了。
解决方法:
1加入if()语句 判断文件是否删除,之后执行删除操作代码如下
$fileName = "APPROOT.'/sy_shangpin_img/'.$img";//这里指的是文件的相对路径
if(file_exists($filName))
{
//执行删除操作
unlink(APPROOT.'/sy_shangpin_img/'.$img);
}else{
echo "未找到该文件!";
}
2:查找APPROOT预定义变量
define APPROOT ......;找到该设置语句,将文件目录设置成自己的。
如果有什么不懂可以继续追问
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式