2016-04-20 51 views
0

我是新來的PHP。我將表單中的多個文件以及其他輸入上傳到數據庫。文件完整路徑和名稱應該以逗號插入到數據庫中。我怎麼做?在一列數據庫中插入多個文件路徑?

$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

由於您正在上傳多個文件,因此您需要將路徑保留在數組中。所以在這裏我使用$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(); 
+0

Thanku非常多。 –

+0

爲什麼OP應該使用這個「解決方案」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

+0

@Jay Blanchard:同意你的評論並更新答案。希望現在OP和未來的訪問者都能理解。謝謝 :) –