因此,我有以下代码,当我从数据库中删除一行时,我也会删除与之关联的文件,代码运行平稳,实际上我可以从数据库中删除行,但不知何故,我无法从服务器目录中删除文件,请注意,行“photo\u filename”包含一个名称,如“photo.png”等,也可以调用_
目录
_从文件返回如下路径“
。。。
\桌面\项目/过程”,我甚至没有收到任何警告,如果取消链接成功,我尝试回显一个字符串,如果没有成功,则回显另一个字符串,但奇怪的是,我没有得到任何输出,就好像循环没有运行一样,有人能告诉我这里缺少的东西的正确方向吗。谢谢
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;
}