2013-04-09 73 views
0

我正在做一个上传和请求标识以在上载后检索图像。但是,在我可以检索之前,我甚至可以将它插入到我的MySQL数据库中;无法在MySQL中插入图像

BTW问题是这是

"$query = "INSERT INTO profilepicture (`id`,`name`,`image`) VALUES ('','".$image_name."','".$image."')";" 

这行19是我的代码,我用

<?php 
$con = mysqli_connect('127.0.0.1', 'root', '', 'test'); 
$files = $_FILES['uploadProfilePicture']['tmp_name']; 

if(!isset($files)){ 
echo("wrong file"); 
}else 
{ 
$image = file_get_contents($_FILES['uploadProfilePicture']['tmp_name']); 
$image_name = $_FILES['uploadProfilePicture']['name']; 
$image_size = getimagesize($_FILES['uploadProfilePicture']['tmp_name']); 

if($image_size == false) 
{ 
    echo("Thats is not an image"); 
}else 
{ 
    $query = "INSERT INTO profilepicture (`id`,`name`,`image`) VALUES ('','".$image_name."','".$image."')"; 
    if(!$insert = mysqli_query($con, $query)) 
    { 
    echo("problem uploading"); 
    }else 
    { 

     $lastid = mysql_insert_id(); 
     echo "image uploaded.</p> Your Image</p> <img src=getImage.php?id=".$lastid.">"; 
    } 
} 
} 
?> 



<div class="loginCheck"> 
     <div class="profilePicture"> 
      <form action="ProfileImages/FileUpload.php" method="POST" enctype="multipart/form-data"> 
       <input type="file" name="uploadProfilePicture"/> <input type="submit" value="Upload" /> 
      </form> 



     </div> 
    </div> 
+0

你会得到什么错误? – jtheman 2013-04-09 22:01:57

回答

0

我敢打赌,你有这一行的一个问题:

$image = file_get_contents($_FILES['uploadProfilePicture']['tmp_name']); 

试试这个:

$image = mysql_real_escape_string(file_get_contents($_FILES['uploadProfilePicture']['tmp_name'])); 

您需要转义该字符串。它可能有一个报价。你应该看看使用prepared statements

+0

更好,只需base64_encode图像数据 – Ozzy 2013-04-09 22:12:14

0

这个字符串应该如何构造?

"$query = "INSERT INTO profilepicture (`id`,`name`,`image`) VALUES ('','".$image_name."','".$image."')";" 

如上所述?或:

$query = "INSERT INTO profilepicture (`id`,`name`,`image`) VALUES ('','".$image_name."','".$image."')"; 

通知的$前和结束;去除报价?