简体   繁体   中英

how to insert multiple images to database in one row

I have made up this html form

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
  <input type="file" name="image1" /><br/>
  <input type="file" name="image2" /><br/>
  <input type="submit" name='submit' value="upload" />
</form>

this is my php code

<?php
 include "conf/connect.php";

            if (isset($_POST['submit'])){

                $uploadpath1 = 'upload/';

                $image1_name = $_FILES['image1']['name'];
                $image1_size = $_FILES['image1']['size'];
                $image1_type = $_FILES['image1']['type'];
                $image1_url =
                $image1_temp_name = $_FILES['image1']['tmp_name'];

                $uploadpath1 = $uploadpath1. time() . basename($image1_name);
                $image1_url = 'http://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['REQUEST_URI']), '\\/').'/'.$uploadpath1;
                ////

                if(empty($errors)) {
                move_uploaded_file($image1_temp_name, $uploadpath1);
                $success[] = 'Uploaded!';
                }
            }
            ///
            if (isset($_POST['submit'])){

                $uploadpath2 = 'upload/';

                $image2_name = $_FILES['image2']['name'];
                $image2_size = $_FILES['image2']['size'];
                $image2_type = $_FILES['image2']['type'];
                $image2_temp_name = $_FILES['image2']['tmp_name'];

                $uploadpath2 = $uploadpath2. time() . basename($image2_name);
                $image2_url = 'http://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['REQUEST_URI']), '\\/').'/'.$uploadpath2;
                ////

                if(empty($errors)) {
                move_uploaded_file($image2_temp_name, $uploadpath2);
                $success[]= 'Uploaded';
                }
            }

            if(isset($_POST['submit'])){

            $id = $_GET['id'];
            $table = 'products';

            mysqli_query($connect, "UPDATE `$table` SET `image1` = $uploadpath1, `image2` = $uploadpath2 WHERE `id` = $id");

            }
  ?>

All in : image_multi.php So when i post submit .. the images uploaded successfully but nothing updated in my table

my table

I run this link : mydomainname.com/image_multi.php?id=1

images uploaded but not appears in database at all

Thanks

检查表格中“ image1”和“ image2”字段的类型和长度

the problem is definitely in the mysql statement, you didn't quote the filenames that's why the update doesn't run through. in the future simply check the db log for errors. to fix this should work

mysqli_query($connect, "UPDATE `$table` SET `image1` = '$uploadpath1', `image2` = '$uploadpath2' WHERE `id` = $id");

notice the ' enclosing your $vars, that's only for when you need strings in the rows - which you clearly need. I'm not sure the Id should be string, check to see if it's numeric.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM