问题:只有最后上传的文件插入到行 (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/