【问题标题】:uploaded images are storing twice in database上传的图像在数据库中存储了两次
【发布时间】:2018-07-28 01:20:14
【问题描述】:

我正在使用 php 开发一个投资组合基础网站,当我将一个或两个图像上传到数据库时,这些图像存储在数据库中但有两次,例如,当我上传一个名为 image.png 的图像时,像 id=1 name=image.png, id=2 name=image.png 一样存储两次。

enter image description here

代码在下面添加谢谢帮助..!

 <?php
if (isset($_POST['upload'])) {
    if (count($_FILES['images']['name']) > 0) {
        for ($i = 0; $i < count($_FILES['images']['name']); $i++) {
            $date       = date('d-m-Y');
            $images     = $_FILES['images']['name'][$i];
            $images_tmp = $_FILES['images']['tmp_name'][$i];
            if (empty($images)) {
                $error = "PLEASE SELECT AT LEAST ONE PHOTO.";
            } else {
                $insert_query = "INSERT INTO `portfolio` (`image_id`, `date`, `images`, `user_id`) VALUES (NULL, '$date', '$images', '" . $_SESSION['user_id'] . "')";
            }
            if (mysqli_query($con, $insert_query)) {
                $msg = "IMAGE UPLOADED TO YOUR PORTFOLIO";
            } else {
                $error = "IMAGE UPLOADING FAILED, PLEASE CHECK";
            }
            if (mysqli_query($con, $insert_query)) {
                move_uploaded_file($images_tmp, "../uploads/$images");
            }
        }
    }
}

?> 

【问题讨论】:

  • 好像你执行了两次插入查询
  • 好像你在不理解的情况下执行
  • 已解决,因为在末尾添加了一些不需要的 if 语句。我刚刚删除了 if 语句和 move_uploaded_file 将其从 if 语句中排除... if (mysqli_query($con, $insert_query)) { move_uploaded_file($images_tmp, "../uploads/$images"); }

标签: php database image file mysqli


【解决方案1】:

可能是因为$i从值0开始,在for循环中初始化$i = 1

for($i = 1; $i < count($_FILES['images']['name']); $i++){

或制作count($_FILES['images']['name'])-1

【讨论】:

    【解决方案2】:
    1. 验证您的输入
    2. 使用 PDO 和准备好的语句
    3. 您的 for 循环正在遍历 $_FILES['images']['name'] 数组的所有内容。

    您可以使用以下几种常见调试技术之一检查文件上传的内容:

    echo "<pre>";
    var_dump($_FILES);
    var_export($_FILES);
    print_r($_FILES);
    

    你应该会发现它类似于:

    Array
    (
        [name] => Array
            (
                [0] => facepalm.jpg
                [1] => 
            )
    
        [type] => Array
            (
                [0] => image/jpeg
                [1] => 
            )
    
        [tmp_name] => Array
            (
                [0] => /tmp/phpn3FmFr
                [1] => 
            )
    
        [error] => Array
            (
                [0] => 0
                [1] => 4
            )
    
        [size] => Array
            (
                [0] => 15476
                [1] => 0
            )
    )
    

    看看:http://php.net/manual/en/features.file-upload.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2021-11-30
      • 2016-09-06
      • 2021-08-28
      相关资源
      最近更新 更多