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

标签 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 提前致谢。

最佳答案

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

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

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

<小时/> 旁注:使用mysqli_affected_rows()代替if($res){ ... }来获取受此影响的行数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";
}

引用资料如下:

关于php - 如何使用php更新mysql中的longblob图像字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34961229/

相关文章:

php - 选择一个子字符串(日期)并进行转换

mysql - 弃用警告 : A boolean value was passed to options. 运算符别名。这是 v5 的无操作,应删除

php - 使用户能够从上次保存的页面开始

javascript - Google 图表 - Uncaught Error : not an array

php - 有没有办法在 CodeIgniter 中自动返回所有数据库列?

php - Joomla 注册 MySQL 错误

PHP - 根据另一个页面的回显结果从数据库捕获用户名

php - sql查询条件检查

php - 获取 PHP ssl session ID

php - 是否可以从 mysql 中获取记录,如 1 月至 3 月(2019 年)、4 月至 6 月(2018 年)下表等