【问题标题】:How to insert a file path into a MySQL table using php?如何使用 php 将文件路径插入 MySQL 表?
【发布时间】:2011-07-05 00:51:42
【问题描述】:

我正在尝试使用 PHP 5 将文件路径插入到一个空的 MySQL 表中,但斜杠和其他字符已被删除,因此在从表中调用该字符串时我无法使用该字符串。用什么函数来保存文件路径而不丢失字符?

$rawpath    = "F:\Business\test.htm";
$url        = "Business";

$query      = "INSERT IGNORE INTO `sites` (`url`,`base`)".
              "VALUES ('$rawpath','$url');";
echo $query;

输出:INSERT IGNORE INTO sites (url,base) VALUES ('F:\Business\test.htm','Business');

$query      = "SELECT * FROM `sites` WHERE `base`='Business';";
$row        = mysql_query($query);
$url        = mysql_result($row,0,"url");

echo $url;

输出:F:Businesstest.htm

【问题讨论】:

    标签: php mysql file path insert


    【解决方案1】:

    您可以在插入语句之前执行:quotemeta($rawpath)。之后所有的反斜杠都会被正确转义。

    【讨论】:

      【解决方案2】:

      您的问题在于反斜杠\,它经常用于转义某些字符。您需要转义此反斜杠(使用另一个反斜杠),以使它们出现。所以,如果你使用双引号,写\\ 而不是只写\,或者使用addslashes($url)

      如果您只使用单引号,我不太确定是否需要转义它们。

      【讨论】:

      • 完美! addlashes($url) 是一个很好的建议。谢谢卡洛斯。
      • @Carlos Campderros 是的,即使他使用单引号,他也需要转义。
      【解决方案3】:

      你需要避开你的反斜线。试试这个

      $rawpath    = "F:\\Business\\test.htm";
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多