0

我正在尝试上传通过上一页上带有“浏览”按钮的表单选择的文件名。执行此操作的代码:

$filename = $_FILES['userfile']['name']; // Get the name of the file (including file extension).

//inserting data order
$clip = "INSERT INTO musicdb
            (clipID, clipName, genre)
            VALUES
            ('','$filename','$name1')";

这在尝试上传没有撇号的文件时工作正常,但是当尝试上传带有撇号的文件时,例如“朋友的生日”,则无法上传到 mysql 表。我认为这与在 INSERT 语句中互换使用“和”有关。我不知道$filename = $_FILES['userfile']['name']默认情况下使用哪个括号是“还是”。

提前致谢

4

4 回答 4

0

你需要逃避你的字符串。

$filename = mysqli_real_escape_string($con, $filename);
于 2013-08-13T13:35:04.540 回答
0

确保转义您在 SQL 语句中使用的任何变量。以供参考:

http://php.net/manual/en/mysqli.real-escape-string.php

于 2013-08-13T13:35:40.283 回答
0

首先从请求的文件名中将撇号替换为另一个字符(通常不使用)。然后插入 MySQL 表。

于 2013-08-13T14:31:59.817 回答
0

对于引号,例如使用此

addslashes($str);
于 2013-08-13T13:36:40.160 回答