[英]unlink doesn't seem to work in a foreach loop
因此,我有以下一段代码,以便当我从数据库中删除行时,我也删除了与之关联的文件,代码运行流畅,实际上我能够从数据库中删除行,但是以某种方式我无法要从服务器目录中删除文件,请注意,“ photo_filename”行包含诸如“ photo.png”之类的名称,也从文件中调用_ DIR _会返回这样的路径“ ... \\ Desktop \\ project /程序”,我什至没有收到任何警告,如果取消链接成功,我尝试回显一个字符串,如果不成功,则返回其他字符串,但是奇怪的是我没有得到任何输出,就像循环没有甚至可以跑步,有人能为我指出我在这里缺少的东西的正确方向。 谢谢
try {
$db->beginTransaction(); // Begin transaction
$query = "DELETE FROM properties "
. " WHERE property_id = :property_id"; // Delete requested property.
$stmt = $db->prepare($query);
$stmt->bindParam(":property_id", $property["property_id"], PDO::PARAM_INT);
$stmt->execute();
$query = "SELECT * FROM photos "
. " WHERE property_id = :property_id";
$stmt = $db->prepare($query);
$stmt->bindParam(":property_id", $property["property_id"], PDO::PARAM_INT);
$stmt->execute();
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $photo) {
try {
unlink(__DIR__ . "/../img/" . $photo["image_filename"])
} catch (Exception $e) {
throw $e;
}
}
$query = "DELETE FROM photos "
. " WHERE property_id = :property_id";
$stmt = $db->prepare($query);
$stmt->bindParam(":property_id", $property["property_id"], PDO::PARAM_INT);
$stmt->execute();
$db->commit();
} catch (Exception $e) { // If there is a problem
$db->rollBack(); //If there was a problem undo the whole attempt to insert
$session->getFlashBag()->add("error", "Hubo un problema" . $e->getMessage()); // Display a message
redirect("/show.php?id=".$property_id); // And redirect
exit;
}
我刚刚意识到自己的愚蠢错误,因此将“属性”表链接到“照片”表,因此当我开始交易并从表中删除该属性时,与之关联的照片也会自动删除,因此当我选择并循环浏览照片表以获取没有的文件,将其保留在此处,以防有人碰到类似的东西,谢谢大家的回应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.