Php 在blueimp/jquery文件上传时向mysql insert添加更多自定义变量

Php 在blueimp/jquery文件上传时向mysql insert添加更多自定义变量,php,jquery,mysql,blueimp,Php,Jquery,Mysql,Blueimp,我目前正在通过mysql在blueimp/jquery文件上传脚本中插入一个标题和描述。我使用了教程,但我需要添加另一个变量。该变量是当前登录用户ID的会话$\u会话[“userid”],我想将其插入我添加的名为uid的列中。通常在insert中实现另一列很简单,但是这个脚本非常敏感,每当我弄乱它时,即使是最微小的一点,我都会得到“SyntaxError:Unexpected token,假设您想更改insert查询(您发布的代码中只有一个insert查询),这就是您需要更改的内容: if (e

我目前正在通过mysql在blueimp/jquery文件上传脚本中插入一个标题和描述。我使用了教程,但我需要添加另一个变量。该变量是当前登录用户ID的会话
$\u会话[“userid”]
,我想将其插入我添加的名为
uid
的列中。通常在insert中实现另一列很简单,但是这个脚本非常敏感,每当我弄乱它时,即使是最微小的一点,我都会得到“
SyntaxError:Unexpected token,假设您想更改insert查询(您发布的代码中只有一个insert查询),这就是您需要更改的内容:

if (empty($file->error)) {
    $sql = 'INSERT INTO `'.$this->options['db_table']
            .'` (`name`, `size`, `type`, `title`, `description`, `uid`)'
            .' VALUES (?, ?, ?, ?, ?, ?)';
    $query = $this->db->prepare($sql);
    $query->bind_param(
            'sisss',
            $file->name,
            $file->size,
            $file->type,
            $file->title,
            $file->description,
            $_SESSION['userid']
        );
    $query->execute();
    $file->id = $this->db->insert_id;
}

我认为您必须在bind_param的第一个参数中添加另一个条目:

$query->bind_param(
        **'sisss',**
        $file->name,
        $file->size,
        $file->type,
        $file->title,
        $file->description,
        $_SESSION['userid']
应该是

$query->bind_param(
        **'sissss',**
        $file->name,
        $file->size,
        $file->type,
        $file->title,
        $file->description,
        $_SESSION['userid']
当然,减去星号,或者正确的数据类型(请参阅中的参数类型部分)

奇怪的是,我尝试传递一个文本字符串作为最后一个参数,它抛出了以下错误:

“PHP致命错误:无法在第66行的/var/www/html/jqfileuploadertest/server/PHP/index.PHP中通过引用传递参数7”

但当我将“mystring”改为$file->name时,效果很好。这需要一些努力,因为我想给这些添加时间戳…我感觉添加“NOW()”是行不通的


更新:我想为每个文件添加两个字段,一个是上传者的ID(我想这就是OP想要做的),另一个是时间戳。我在表单中添加了这些字段作为隐藏输入:

<input name="contributor[]" type="hidden" value="myuserid" />
<input name="uploadedOn[]" type="hidden" value="2014-03-28 10:00:00" />
并修改了index.php中准备sql语句的这一部分:

if (empty($file->error)) {
        $sql = 'INSERT INTO `'.$this->options['db_table']
            .'` (`name`, `size`, `type`, `title`, `description`,`contributor`, `dateUploaded`)'
            .' VALUES (?, ?, ?, ?, ?, ?, ?)';
        $query = $this->db->prepare($sql);
        $query->bind_param(
            'sisssss',
            $file->name,
            $file->size,
            $file->type,
            $file->title,
            $file->description,
            $file->contributor,
            $file->uploadedOn
        );

它成功了。

上传文件时,javascript控制台中会出现错误,对吗?在我看来,加载的文件中有一个404未找到,它试图将收到的404页面解析为脚本文件,而实际上它是一个html文件,从您收到的特定错误消息开始nd在哪一行代码中?
SyntaxError:意外标记代码的哪一行?此错误消息本身没有太大帮助。它可能在任何地方。我在尝试上载图像后(当我尝试以任何方式编辑索引“insert-into”sql时)收到它,但是,当我按照教程的说明进行操作时,没有错误。我认为您发布了很多代码。如果您只发布有问题的代码以及可能的行号,可能会有所帮助。您是否为应用程序打开了错误报告:再次,我收到了
SyntaxError:Unexpected标记您熟悉blueimp吗?不,但由于它是PHP,如果您能指出出现问题的代码行,这将非常有用。是否可能错误来自代码的完全不同部分,而与您所做的更改或我建议的更改无关?它在add.PHP上回响,因为anyti如果您在blueimp上编辑任何内容,则该错误似乎通过ajax显示在您尝试上载的图像下。这是一个一般性错误…任何不正确的内容都会出现该错误。那么,您可能会在代码的其他地方遇到错误。如果没有进一步的信息,我和其他任何人都无法为您提供帮助。我我添加了
session_start();
,将行更改为
$query->bind_param('sisss',
),并添加了
$\u session['userid']
…但仍然无法工作。
<input name="contributor[]" type="hidden" value="myuserid" />
<input name="uploadedOn[]" type="hidden" value="2014-03-28 10:00:00" />
    $file->contributor = @$_REQUEST['contributor'][$index];
    $file->uploadedOn = @$_REQUEST['uploadedOn'][$index];
if (empty($file->error)) {
        $sql = 'INSERT INTO `'.$this->options['db_table']
            .'` (`name`, `size`, `type`, `title`, `description`,`contributor`, `dateUploaded`)'
            .' VALUES (?, ?, ?, ?, ?, ?, ?)';
        $query = $this->db->prepare($sql);
        $query->bind_param(
            'sisssss',
            $file->name,
            $file->size,
            $file->type,
            $file->title,
            $file->description,
            $file->contributor,
            $file->uploadedOn
        );