【问题标题】:PHP Delete Link Unlinks Files from Folders but Doesn't Remove Row from MSSQL TablePHP删除链接从文件夹中取消链接文件但不从MSSQL表中删除行
【发布时间】: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

【问题讨论】:

    标签: php sql sql-server row unlink


    【解决方案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] 访问元素。现在修复答案
    • 我认为如果一个问题在 stackoverflow 上是独一无二的,与特定代码无关并且写得很好,那么它就值得投票。对于一个答案,它也应该写得很好,应该涵盖所有方面,应该给出相关的线索(如果有的话)。另外,我认为您的提议对我产生了不利影响..
    • 我相信它是独一无二的。 Stack Overflow 上的大多数问题都源于对特定代码的经验。我相信两者都写得很好并且很准时。您的回答涵盖了我问题的所有方面。(它解决了我的问题。)它还提供了一种学习体验,您可以通过使用单个查询来缩短我的代码的额外知识。我也不认为要求交换赞成票会对您产生负面影响,因为我只是在问一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多