HTML5 多文件上传。 Return lastinsertid 通过 jQuery AJAX 和 PHP?

HTML5 Multiple File Upload. Return lastinsertid through jQuery AJAX and PHP?

我有一个 html 多文件上传:

<input type="file" multiple="multiple">

我正在成功上传文件并写入我的数据库 table:

jQuery

function uploadFile() {

  //some other stuff done here...

  var ajaxRequest =
    $.ajax({
      url: '../inc/ajax-upload.php',
      type: 'POST',
      cache: false,
      processData: false, // important
      contentType: false, // important
      data: formData,
    });
    ajaxRequest.done(function(data) { 

      console.log(data); 
      lastid = 'this comes from data';
      $.each(files, function(i, file) {
        $('div#files').append('<div class="file-name" id="'+ file['name'] +'">'+file['name']+'<button class="file-delete" id="' + lastid +'">delete</button>');
      });

    })
    ajaxRequest.fail(function(jqXHR) { console.log(jqXHR); }) 
}

php

//CRUD stuff in another file
function pdoInsert($sql, $args) {
    $pdo = dbConnect();
    $stmt = $pdo->prepare($sql);
    $stmt->execute($args);
    echo $pdo->lastInsertId();
}
function addFile($filename){
    $sql = 'INSERT INTO tbl_files (filename) VALUES (?)';
    $args = array($filename);
    echo pdoInsert($sql, $args);
}


//ajax.php file
$lastid = array();
foreach($_FILES as $file) {

    //do filesystem stuff

    //insert to db, get last insert id
    $lastid[] = addFile($filename);  
}
echo json_encode($lastid);

我希望我的 PHP 中的 $lastid 采用 JSON 格式,但是,它返回插入 ID 的连接字符串,例如123124[null,null] 或类似的东西。这里可能有什么问题?

如果您想将该值传递回调用者,则必须 RETURN 来自函数的信息。

所以将这两个函数都更改为 return 一个值而不是回显它。

//CRUD stuff in another file
function pdoInsert($sql, $args) {
    $pdo = dbConnect();
    $stmt = $pdo->prepare($sql);
    $stmt->execute($args);
    //echo $pdo->lastInsertId();
    return $pdo->lastInsertId();
}
function addFile($filename){
    $sql = 'INSERT INTO tbl_files (filename) VALUES (?)';
    $args = array($filename);
    //echo pdoInsert($sql, $args);
    return pdoInsert($sql, $args);
}