php - 将多个文件插入/上传到 PHP MYSQL 数据库表中的特定行

标签 php mysql upload insert

问题:只有最后上传的文件插入到行 (listing-amenities-safety-photos-id),这应该是上传期间选择的整个照片。

HTML:

    <form action="#" method="post" enctype="multipart/form-data">
        <input name="upload[]" type="file" multiple="multiple" />
        <input type="submit" name="submit" value="UPLOAD" />
    </form>

PHP:

    <?php
if(isset($_POST['submit'])) {
    for ($i=0; $i<count($_FILES['upload']['name']); $i++) {
        $path = "../media/images/Listings/Set/";
        $ext = explode('.', basename( $_FILES['upload']['name'][$i]));
        $path = $path . md5(uniqid()) . "." . $ext[count($ext)-1]; 
        move_uploaded_file($_FILES['upload']['tmp_name'][$i], $path);           

    }           

    $quotequery = "INSERT INTO `listing-details` (`listing-amenities-safety-photos-id`) VALUES ('$path')";
    if (mysqli_query($conn, $quotequery) == TRUE) {

        echo "File uploaded.";
    } else {
        echo "Upload failed.". mysqli_error($conn);
    }

}

?>

插入仅显示一个条目的照片: Image as proof that only one entry from $path is inserted

注意:所有照片已成功上传至指定路径。但是,我无法让 mysql 插入我行中的所有文件。我想数组可能会解决我的问题,但我并不是真正的数组专家,甚至不是 PHP 专家!因此,任何有帮助但“标记为重复”或“否决票”的答案都将不胜感激。谢谢

最佳答案

将数据库查询移至 of 循环内。 $path 在每次传递时都会被覆盖,因此就目前情况而言,它只会插入最后一个。

<?php
if(isset($_POST['submit'])) {
    for ($i=0; $i<count($_FILES['upload']['name']); $i++) {
        $path = "../media/images/Listings/Set/";
        $ext = explode('.', basename( $_FILES['upload']['name'][$i]));
        $path = $path . md5(uniqid()) . "." . $ext[count($ext)-1];
        move_uploaded_file($_FILES['upload']['tmp_name'][$i], $path);

        $quotequery = "INSERT INTO `listing-details` (`listing-amenities-safety-photos-id`) VALUES ('$path')";
        if (mysqli_query($conn, $quotequery) == TRUE) {

            echo "File uploaded.";
        } else {
            echo "Upload failed.". mysqli_error($conn);
        }
    }
}

?>

关于php - 将多个文件插入/上传到 PHP MYSQL 数据库表中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40001949/

相关文章:

php - 使用 Unveil.js 和 Yii 进行延迟加载?

php - PHP使用ORDER BY查询MySQL使用按钮对数据库项进行排序

php - 带计数的 mysql 汇总

mysql - mysql如何按天、同时进行查询?

mysql - 使用自引用列更新 MySQL 表

PowerShell FTP 上传

javascript - 为什么本地存储在javascript之后最后保存

php - Laravel 4.2 - 添加时间到时间戳

mysql - 如何根据另一个表中的数据对mysql中的项目进行排序?

jquery - 需要一个非常简单的工作文件 uploader