PHP删除链接从文件夹中取消链接文件但不从MSSQL表中删除行

Posted

技术标签:

【中文标题】PHP删除链接从文件夹中取消链接文件但不从MSSQL表中删除行【英文标题】:PHP Delete Link Unlinks Files from Folders but Doesn't Remove Row from MSSQL Table 【发布时间】:2014-03-26 19:41:15 【问题描述】:

当链接被点击时,这个功能就到位了。此功能的目的是从我的网站文件夹中删除图像和 PDF 文件,并从我的 MSSQL 表中删除指定的行。此功能仅从文件夹中删除图像和 PDF,但不会删除行。

这是函数的代码:

if ($_GET['del'] == 'true') 
   // cast id as int for security
   $product_code = $_GET['product_code'];
   $file = mssql_fetch_array(mssql_query("select product_img_name from products where id = $product_code"));
   unlink("img/$file[0]");     
   $file38 = mssql_fetch_array(mssql_query("select specsheet from products where id = $product_code"));
   unlink("specsheets/$file38[0]"); 
   // delete row from table
   $sql = "DELETE FROM products WHERE product_code = '$product_code'";
   $result = mssql_query($sql, $conn);
    // end if del

【问题讨论】:

【参考方案1】:

您的最后一个 WHERE 条件有误。 product_code = '$product_code' 必须是 id = '$product_code'

此外,您可以通过一个查询获取两列:

$row = mssql_fetch_array(mssql_query("select product_img_name, specsheet from products where id = $product_code"));
unlink("img/$row[0]");
unlink("specsheets/$row[1]");

【讨论】:

如果两列有不同的名称,而您通过一个查询获取了这两个列怎么办? 列名是指每列内的数据。 我明白你的意思,并意识到我的回答有误。对此感到抱歉。您应该通过$row[0]$row[1] 访问元素。现在修复答案 我认为如果一个问题在 *** 上是独一无二的,与特定代码无关并且写得很好,那么它就值得投票。对于一个答案,它也应该写得很好,应该涵盖所有方面,应该给出相关的线索(如果有的话)。另外,我认为您的提议对我产生了不利影响.. 我相信它是独一无二的。 Stack Overflow 上的大多数问题都源于对特定代码的经验。我相信两者都写得很好并且很准时。您的回答涵盖了我问题的所有方面。(它解决了我的问题。)它还提供了一种学习体验,您可以通过使用单个查询来缩短我的代码的额外知识。我也不认为要求交换赞成票会对您产生负面影响,因为我只是在问一个问题。

以上是关于PHP删除链接从文件夹中取消链接文件但不从MSSQL表中删除行的主要内容,如果未能解决你的问题,请参考以下文章

git 忽略提交某个指定的文件(不从版本库中删除)

django 多对多关系:如何删除项目但不从相关模型中删除它们

删除mysql查询python结果的行但不从数据库中删除

跟踪图像文件的链接或引用并删除未使用的文件(PHP/数据库)

取消链接 filePath Laravel Php 中的上传文件夹

软链接和硬链接