我正在尝试使用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
答案 0 :(得分:4)
你的问题是反斜杠\
,它经常被用来逃避某些字符。您需要转义此反斜杠(使用另一个反斜杠),以使它们出现。因此,如果您使用双引号,请写\\
而不是\
,或使用addslashes($url)
。
如果你只使用单引号,我不太确定你是否需要逃脱它们。
答案 1 :(得分:2)
你需要逃避反斜杠。试试这个
$rawpath = "F:\\Business\\test.htm";
希望这有帮助。
答案 2 :(得分:1)
您可以在insert语句之前执行:quotemeta($rawpath)
。之后,所有反斜杠都将被正确转义。