【问题标题】:PHP unlink is asking for a string trying to give it sql stringPHP unlink 要求一个字符串试图给它 sql 字符串
【发布时间】:2011-10-21 04:58:57
【问题描述】:

我试图从某个文件夹中删除一个项目,我需要将项目的路径传递给 unlink()。出于某种原因,它说我没有返回一个字符串,我不知道该怎么做。

所有代码如下:

$filePath = "Select path FROM library where id=" .$id;

    unlink(mysql_query($filePath));

    $library =  "DELETE FROM library WHERE id =" .$id;
    $files =    "DELETE FROM files WHERE library_id=" .$id;
    mysql_query($library) or die('Unable to update using sql '.$library.' '.mysql_error($link));
    mysql_query($files) or die('Unable to update using sql '.$files.' '.mysql_error($link));

【问题讨论】:

    标签: php mysql path sql-delete unlink


    【解决方案1】:

    mysql_query 返回一个语句句柄,而不是一个字符串。您需要从结果中获取一行:

    $res = mysql_query($filePath) or die(mysql_error());
    $row = mysql_fetch_assoc($res);
    unlink($row['path']);
    

    【讨论】:

    • 非常感谢,做到了:DI 之前尝试做类似的事情,但没有成功,我检查一下我的工作,看看出了什么问题,但解决了它:D
    【解决方案2】:

    mysql_query 返回一个资源,而不是一个字符串。

    用途:

    $query = mysql_query($filePath);
    $result = mysql_fetch_array($query);
    $path = $result['path'];
    unlink($path);
    

    过程:

    1. 查询数据库并将资源句柄存储在变量中 ($query)。
    2. 获取该行(如果只有一个)并将该行存储在$result
    3. 获取path 列的值。
    4. 使用该值删除文件。

    有关详细信息和使用说明,请参阅manual

    【讨论】:

      【解决方案3】:

      http://php.net/manual/en/function.mysql-query.php

      http://www.php.net/manual/en/function.mysql-result.php

      mysql_query 实际上并不返回您选择的查询的值,而是一个结果资源。您可以使用函数 mysql_result(, , ) 来获取想要的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-26
        • 2020-05-05
        • 2019-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多