如果我这样做,它会起作用:
$data_array2 = mysql_query("SELECT pic_loc FROM pictures WHERE user_id = '".$id."'");
$cell_pictures = mysql_fetch_array($data_array2);
foreach($cell_pictures as $pics_being_deleted)
{
unlink($pics_being_deleted);
}
问题是上面的代码是嵌套的,这意味着它每次运行 unlink 函数时都会运行一个新的 MySQL 查询,所以我制作了下面的代码以使其不这样做:
$the_pics_raw_2 = array();
$data_array2 = mysql_query("SELECT pic_loc FROM pictures WHERE user_id = '".$id."'");
while($cell_pictures = mysql_fetch_array($data_array2))
{
$the_pics_raw = $cell_pictures['pic_loc'];
$the_pics_raw_2[] = $the_pics_raw;
}
$the_pics_raw_3 .= " \"../../". implode("\" , \"../../" ,$the_pics_raw_2)."\"";
$the_pics = array($the_pics_raw_3);
foreach($the_pics as $pics_being_deleted)
{
unlink($pics_being_deleted);
}
我得到这个错误作为回报:
Warning: unlink( "../../users/biondizzle/photos/pic_3387677.png" , "../../users/biondizzle/photos/pic_1581185.png") [function.unlink]: No such file or directory
它显然不会找到该"../../users/biondizzle/photos/pic_3387677.png" , "../../users/biondizzle/photos/pic_1581185.png"
目录,因为这是同时运行的 2 个单独的目录,因此foreach()
不是“foreaching”。
有什么方法可以让unlink()
我在数组中列出的每个目录单独运行,我想我可以通过添加逗号和引号来让它工作implode()
?非常感谢,希望我解释得足够好-迈克