Php 当记录从数据库中删除时,我需要帮助从文件夹中删除图像
我有一个表,在表中存储图像名称,在服务器上的文件夹中存储文件。我想做的是能够从数据库中删除记录,同时从服务器上的文件夹中删除表记录中名称对应的图像。如需任何帮助,请参阅以下代码:Php 当记录从数据库中删除时,我需要帮助从文件夹中删除图像,php,mysql,sql,Php,Mysql,Sql,我有一个表,在表中存储图像名称,在服务器上的文件夹中存储文件。我想做的是能够从数据库中删除记录,同时从服务器上的文件夹中删除表记录中名称对应的图像。如需任何帮助,请参阅以下代码: if ((isset($_POST['hiddenFieldID'])) && ($_POST['hiddenFieldID'] != "")) { $deleteSQL = sprintf("DELETE FROM photodiary WHERE pdiaryID=%s",
if ((isset($_POST['hiddenFieldID'])) && ($_POST['hiddenFieldID'] != "")) {
$deleteSQL = sprintf("DELETE FROM photodiary WHERE pdiaryID=%s",
GetSQLValueString($_POST['hiddenFieldID'], "int"));
mysql_select_db($database_connMain, $connMain);
$Result1 = mysql_query($deleteSQL, $connMain) or die(mysql_error());
$deleteGoTo = "adphotodiary.php?user=" . $row_rsadmin['adID'] . "";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
您可以使用php删除文件。如果您将文件的位置传递给它,它将为您删除该文件,前提是php在该文件所在的目录中具有正确的权限(有关权限,请参阅)
因此,从数据库中删除文件后(进行检查以确保记录已被删除),您将继续调用文件位置的unlink。您可以使用php函数您必须执行选择查询以获取文件名并检索其在服务器上的路径。然后您可以发送删除查询,如果成功,您将删除该文件
if ((isset($_POST['hiddenFieldID'])) && ($_POST['hiddenFieldID'] != "")) {
$getPathSql = sprintf("SELECT * FROM photodiary WHERE pdiaryID=%s",
GetSQLValueString($_POST['hiddenFieldID'], "int"));
mysql_select_db($database_connMain, $connMain);
$pathResult = mysql_query($getPathSql , $connMain) or die(mysql_error());
$path = ...
$deleteSQL = sprintf("DELETE FROM photodiary WHERE pdiaryID=%s",
GetSQLValueString($_POST['hiddenFieldID'], "int"));
$Result1 = mysql_query($deleteSQL, $connMain) or die(mysql_error());
if($Result1 && is_file($path)) unlink($path);
$deleteGoTo = "adphotodiary.php?user=" . $row_rsadmin['adID'] . "";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
你可以使用取消链接。。。比如说
unlink('pathtofile');
非常感谢所有帮助过我的人。很抱歉,我之前没有更新此内容,但我已解决了问题。当然,在大家的帮助和进一步的阅读下。 我所做的是首先定义目标,然后从浏览器请求中获取要删除的字段的id,运行查询以根据id从数据库中选择字段记录,然后使用php中的unlink函数将图像与最初定义的目标文件夹取消链接。 之后,继续从表中删除记录 下面是代码
$target = "../photodiary/";
if ((isset($_POST['hiddenFieldID'])) && ($_POST['hiddenFieldID'] != "")) {
$imID = $_GET['pdid'];
$query_pd = "SELECT photo FROM photodiary WHERE pdiaryID = $imID";
$resulttt = mysql_query($query_pd) or die('Error, get image info failed. ' . mysql_error());
$row = mysql_fetch_assoc($resulttt);
if(($row['photo']) != "")
{
unlink($target . $row['photo']);
}
$deleteSQL = sprintf("DELETE FROM photodiary WHERE pdiaryID=%s",
GetSQLValueString($_POST['hiddenFieldID'], "int"));
mysql_select_db($database_connMain, $connMain);
$Result1 = mysql_query($deleteSQL, $connMain) or die(mysql_error());
$deleteGoTo = "confirm_del.php?user=" . $row_rsadmin['aID'] . "";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
我真的希望数据库中的路径数据不是来自用户输入@Armel:已尝试删除文件夹中的图像,但未删除。文件夹路径为:-$path=“../photodiary/”;