我在数据库中上传图片时遇到此问题。当我插入查询时,我只需点击一下即可获得3行。这是HTML文件:
<form action="my_parser.php" method="post" enctype="multipart/form-data">
<input type="file" name="file_array[]">
<input type="file" name="file_array[]">
<input type="file" name="file_array[]">
<input type="submit" value="Upload all files">
</form>
这是我的PHP代码:
<?
include "../include/config.php";
?>
<?
if(isset($_FILES['file_array'])){
$id = $_REQUEST['id'];
$name_array = $_FILES['file_array']['name'];
$tmp_name_array = $_FILES['file_array']['tmp_name'];
$type_array = $_FILES['file_array']['type'];
$size_array = $_FILES['file_array']['size'];
$error_array = $_FILES['file_array']['error'];
$image1 = $name_array[0];
for($i = 0; $i < count($tmp_name_array); $i++){
if(move_uploaded_file($tmp_name_array[$i],
"test_uploads/".$name_array[$i])){
echo $name_array[$i]." upload is complete<br>";
$add = mysql_query("insert into nn values (' ','$image1','','')");
echo "<img src='test_uploads/$image1'>";
} else
{ echo "move_uploaded_file function failed for ".$name_array[$i]."<br>";
}
}
}
?>
在数据库中,表nn有此列。 id - image1 - image2 - image3。 谢谢
答案 0 :(得分:0)
让我们清理一下。
让我们设置数据库连接。对于此示例,我们正在转移到mysqli
。然后我们将处理移动文件,并将文件路径存储在数据库中。
$conn = new mysqli('host', 'user', 'pass', 'db');
if(isset($_FILES['file_array'])):
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : false;
if($id):
$file_array = $_FILES['file_array'];
for($i = 0; $i < count($file_array['tmp_name']); $i++):
if(move_uploaded_file($file_array['tmp_name'][$i], 'test_uploads/'.$file_array['name'][$i])):
$stmt = $conn->prepare("insert into nn values('', ?, '', '')");
$stmt->bind_param('s', $file_array['name'][$i]);
if($stmt->execute()):
echo $file_array['name'][$i].' has been uploaded successfully.';
else:
echo 'Failed to upload '.$file_array['name'][$i].'. Please check the file and try again!';
return false;
endif;
endif;
endfor;
endif;
endif;
没有理由创造所有那些凌乱的变量。我们已经转移到支持目前的MySQLI,并且我们已经使用了准备好的声明来确保图像的名称不是恶意的,可能对您有害我们的申请。
<强>资源强>