如何在mysql表中保存完整的文件路径?
目前存储路径名的mysql如下
F:Xammphtdocsdrnirajvoraappointment /上传/ 0stock-插图4507047-设置的色-planets.jpg
但它应该像这样保存
F:XAMMP / htdocs中/ drnirajvora /约会/上传/ 0stock-插图4507047-设置的色-planets.jpg
这是我保存文件的代码
public function uploadfiles()
{
if(isset($_FILES['fileupload']))
{
$errors= array();
$connection = db::factory('mysql');
$user_id=$_SESSION['userid'];
foreach($_FILES['fileupload']['tmp_name'] as $key => $tmp_name )
{
$file_name = $key.$_FILES['fileupload']['name'][$key];
$file_size =$_FILES['fileupload']['size'][$key];
$file_tmp =$_FILES['fileupload']['tmp_name'][$key];
$file_type=$_FILES['fileupload']['type'][$key];
if($file_size > 2097152)
{
$errors[]='File size must be less than 2 MB';
}
$upload_dir = ROOT;
$desired_dir=ROOT."/uploads/";
if(empty($errors)==true)
{
if(is_dir(ROOT."/uploads/")==false)
{
mkdir(ROOT."/uploads/", 0700); // Create directory if it does not exist
}
if(is_dir(ROOT."/uploads/".$file_name)==false)
{
$file_path=ROOT."/uploads/".$file_name;
move_uploaded_file($file_tmp,$file_path);
$query="INSERT into uploads (`User_Id`,`File_Name`,`File_Path`,`File_Size`,`File_Type`) VALUES('$user_id','$file_name','$file_path','$file_size','$file_type'); ";
mysql_query($query);
}
else
{ // rename the file if another one exist
$new_path=ROOT."/uploads/".$file_name.time();
rename($file_tmp,$new_path) ;
$file_path=$new_path;
$query="INSERT into uploads (`User_Id`,`File_Name`,`File_Path`,`File_Size`,`File_Type`) VALUES('$user_id','$file_name','$file_path','$file_size','$file_type'); ";
mysql_query($query);
}
else
{
print_r($errors);
}
}
if(empty($error))
{
//echo "Success"; exit;
return true;
}
return false;
}
}
答案 0 :(得分:1)
在最新的PHP中不推荐使用mysql_query,它也不是那么安全。我强烈建议切换到Mysqli或PDO。
要回答你的问题,尝试在变量上使用mysql_real_escape_string(),然后再将它们插入数据库。它会逃脱特殊的角色。