如何使用php更新mysql中的longblob图像字段

时间:2016-01-23 08:19:33

标签: php mysql

 if(isset($_POST['submit']) and isset($_GET['slider_id']))
    {
        $date=date('Y-m-j');
        $imgName=$_FILES['image']['name'];
        $cont=file_get_contents($imgName);
         $cont=addslashes($cont);

         if($imgName=="")
         {
        //$imgData =addslashes(file_get_contents($_FILES['image']['name']));
        $res=mysqli_query($connect,'UPDATE `slider_images` SET `image`=\''.$cont.'\' WHERE id=\''.$_GET['slider_id'].'\'');
             if($res)
             {
                 echo "Updated";
             }
             else
             {
                 echo "Not Updated";
             }
        }
     }

不了解这背后的真正问题,我已经审查了许多解决方案但没有成功。所有解决方案都发现他们告诉将图像存储在文件夹中并将文件名存储在数据库表中。在数据库中存储图像后,只存储4个图像,为什么不将它们存储在数据库中。请指导我完成这个问题。以下是我正在谈论的问题。 Warning Message 提前谢谢。

1 个答案:

答案 0 :(得分:0)

  • $_FILES['file']['name']是用户计算机上传文件的原始名称。
  • $_FILES['file']['tmp_name']将包含服务器上文件的临时文件名。在您处理文件之前,这只是一个临时占位符。

所以你应该像这样访问文件:

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

<小时/> 旁注:而不是if($res){ ... }使用mysqli_affected_rows()来获取受此UPDATE查询影响的行数,如下所示:

mysqli_query($connect,"UPDATE `slider_images` SET `image`='".$cont."' WHERE id='".$_GET['slider_id']."'");
if(mysqli_affected_rows($connect)){
    echo "Updated";
}else{
    echo "Not Updated";
}

以下是参考资料: