在DB的单个列中插入多个文件路径?

时间:2016-04-20 12:31:00

标签: php file uploading

我是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();

1 个答案:

答案 0 :(得分: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();