【问题标题】:Inserting multiple files path in a single column of DB?在数据库的单列中插入多个文件路径?
【发布时间】:2016-08-13 03:17:06
【问题描述】:

我是 php 新手。我正在将表单中的多个文件以及其他输入上传到数据库。文件的完整路径和名称应该用逗号插入到 DB 中的单列中。我该怎么做?

$filename = $_FILES['file']['name'];
$folder = "/var/www/html/PhpProject1/";
for($i=0; $i<count($_FILES['file']['name']);$i++)
{
move_uploaded_file($_FILES['file']['tmp_name'][$i], $folder.$_FILES['file']['name'][$i]);
}                
$stmt = $conn->prepare("INSERT INTO studentrecords(name, email, mobileno,address,gender,filename) values (?,?,?,?,?,?)");
$stmt->bind_param("ssssss",$name,$email,$mobno,$address,$gender,$filename);
$stmt->execute();
echo "Successfull";
$stmt->close();
$conn->close();

【问题讨论】:

    标签: php file uploading


    【解决方案1】:

    您需要将路径保存在数组中,因为您要上传多个文件。所以在这里我使用$paths 数组来存储路径。 在插入查询中,我使用implode 函数将数组转换为字符串(带逗号)。这样,您可以将所有路径作为逗号分隔值存储在单个列中。

    这是你的解决方案

        $filename = $_FILES['file']['name'];
        $folder = "/var/www/html/PhpProject1/";
        $paths = array();
        for($i=0; $i<count($_FILES['file']['name']);$i++)
        {
        $paths[] = $folder.$_FILES['file']['name'][$i];
        move_uploaded_file($_FILES['file']['tmp_name'][$i], $folder.$_FILES['file']['name'][$i]);
        }                
        $stmt = $conn->prepare("INSERT INTO studentrecords(name, email, mobileno,address,gender,filename) values (?,?,?,?,?,?)");
        $stmt->bind_param("ssssss",$name,$email,$mobno,$address,$gender,implode(",",$paths));
        $stmt->execute();
        echo "Successfull";
        $stmt->close();
        $conn->close();
    

    【讨论】:

    • 为什么 OP 应该使用这个“解决方案”? 好的答案将始终解释所做的事情以及为什么以这种方式完成,不仅是为了 OP,也是为了 SO 的未来访问者。跨度>
    • @Jay Blanchard:同意您的评论并更新了答案。希望现在对于 OP 和未来的访问者来说是可以理解的。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多