Php 如何上传多个imges并插入mysql的同一行

Php 如何上传多个imges并插入mysql的同一行,php,mysql,Php,Mysql,我期待着从用户上传两个或更多的证书图片,并存储在mysql中的行中。我如何才能做到这一点 下面是我用来上传单个图像的代码…但是我如何修改代码以允许存储两个图像呢 我的addstudent.php文件 <span>Name : </span><input type="text" style="width:265px; height:30px;" name="name" Required /><br> <span>Cove

我期待着从用户上传两个或更多的证书图片,并存储在mysql中的行中。我如何才能做到这一点

下面是我用来上传单个图像的代码…但是我如何修改代码以允许存储两个图像呢

我的addstudent.php文件

        <span>Name : </span><input type="text" style="width:265px; height:30px;"  name="name" Required /><br>
<span>Cover Letter:</span><input type="file" name="file" id="file"  required ><br><br>
名称:
求职信:

我的SaveStudent.php包含

 <?php
session_start();
include('../connect.php');
$a = $_POST['name'];

 // query

  $file_name  = strtolower($_FILES['file']['name']);
  $file_ext = substr($file_name, strrpos($file_name, '.'));
  $prefix = 'your_site_name_'.md5(time()*rand(1, 9999));
  $file_name_new = $prefix.$file_ext;
  $path = '../uploads/'.$file_name_new;


/* check if the file uploaded successfully */
if(@move_uploaded_file($_FILES['file']['tmp_name'], $path)) {

 //do your write to the database filename and other details   
$sql = "INSERT INTO student (name,file) VALUES (:a,h)";
$q = $db->prepare($sql);
$q->execute(array(':a'=>$a,':h'=>$file_name_new));
header("location: students.php");

}
?>


现在,我如何添加一个或多个输入以上传图像,如addstudent.php和savestudent.php中所述。

向您的输入添加
multiple
属性

将收到的文件存储为json数组,因此可能需要更改DB中的字段类型

<span>Name : </span><input type="text" style="width:265px; height:30px;"  name="name" required /><br>
<span>Cover Letter:</span><input type="file" name="file[]" id="file" multiple="" required ><br><br>
在单行中插入数据的步骤(逗号分隔)


你想在同一列的“文件”中保存多个文件名吗?我怎样才能在同一列中对图像进行删除?如果可能的话,那么是的,如果不考虑存储在下一个列名文件中,实际上保存一个列中的所有文件名将不是一个好方法,因为在更新的时候它会造成混乱。同时,在同一行的不同列中保存也是不可能的,因为您必须保存多个文件,并且您不知道有多少。您应该考虑多行保存。如果你想把标准化的DB考虑为它做一个单独的表。@ JoTK.如果我想在CultNo.1中保存一个名字,并且在第二列的名称文件Fiel1和第二个映像下,在同一行的名字Fiele2下面的列中保存一个名字。我只需要知道如何保存第二个图像..为第二个图像声明一个单独的名称对我不起作用,所以…有帮助吗?我以后如何在图像中显示它们?对于逗号分隔的方法,获取值并分解它,使用foreach循环
$a = $_POST['name'];
$sql = "INSERT INTO student (name) VALUES (:a)";
$q = $db->prepare($sql);
$q->execute(array(':a'=>$a));
$id = $q->lastInsertId();

if(count($_FILES)){
    foreach ($_FILES['file']['name'] as $key => $fname) {
        $file_name  = strtolower($fname);
        $file_ext = substr($file_name, strrpos($file_name, '.'));
        $prefix = 'your_site_name_'.md5(time()*rand(1, 9999));
        $file_name_new = $prefix.$file_ext;
        $path = '../uploads/'.$file_name_new;
        if(@move_uploaded_file($_FILES['file']['tmp_name'][$key], $path)) {
            $sql = "INSERT INTO student_cert (student_id,file) VALUES (:id,h)";
            $q = $db->prepare($sql);
            $q->execute(array(':id'=>$id,':h'=>$file_name_new));
        }
    }            
    header("location: students.php");
}
$a = $_POST['name'];
if(count($_FILES)){
    $file_arr = [];
    foreach ($_FILES['file']['name'] as $key => $fname) {
        $file_name  = strtolower($fname);
        $file_ext = substr($file_name, strrpos($file_name, '.'));
        $prefix = 'your_site_name_'.md5(time()*rand(1, 9999));
        $file_name_new = $prefix.$file_ext;
        $path = '../uploads/'.$file_name_new;
        if(@move_uploaded_file($_FILES['file']['tmp_name'][$key] , $path)) {
            $file_arr[] = $file_name_new;
        }
    }

    if(count($file_arr)) {
        $file_str = implode(', ', $file_arr);
        $sql = "INSERT INTO student (name,file) VALUES (:a,h)";
        $q = $db->prepare($sql);
        $q->execute(array(':a'=>$a,':h'=>$file_str));
    }         
    header("location: students.php");
}