Maison  >  Article  >  développement back-end  >  jquery-file-upload 的php mysql插入问题

jquery-file-upload 的php mysql插入问题

WBOY
WBOYoriginal
2016-06-23 13:51:26810parcourir

最近用jquery-file-upload 来改善网站上传的体验

https://github.com/blueimp/jQuery-File-Upload/wiki/PHP-MySQL-database-integration
上传时按照他的参考文档,立马就完成了,一开始也按照他的sql 架构先试试

结果上传后,也能成功插入,json传回页面一切正常!

但问题来了,他的sql 架构...有个叫url

但作者好像在PHP的SQL中没有处理

那我就改改吧,....

先新增了一些基本配置

$dir = $_COOKIE["uid"].'/'.date("Y").'/'.date("m").'/'.date("d").'/';$dirUP =  "../../../att/".$dir;$dirLink =  $dir;$options=array(    'upload_dir' => $dirUP,    'upload_url' => $dirLink,    'delete_type' => 'POST',    'db_host' => 'localhost',    'db_user' => 'root',    'db_pass' => '*****',    'db_name' => '*****',    'db_table' => 'files');



应该就是这段了....

我尝试多次,加入url字段都不成功 [原本的文档代码]
    protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,            $index = null, $content_range = null) {        $file = parent::handle_file_upload(            $uploaded_file, $name, $size, $type, $error, $index, $content_range        );        if (empty($file->error)) {            $sql = 'INSERT INTO `'.$this->options['db_table']                .'` (`name`, `size`, `type`, `title`, `description`)'                .' VALUES (?, ?, ?, ? , ?)';            $query = $this->db->prepare($sql);            $query->bind_param(                'sisss',                $file->name,                $file->size,                $file->type,                $file->title,                $file->description            );            $query->execute();            $file->id = $this->db->insert_id;        }        return $file;    }


都给我显示:
Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in

这是什么意思,说我的数量有问题? 是指我加少了吗?
我已经改成...这样,5处的type字段也都加了url也说是数量问题?

    protected function handle_file_upload($uploaded_file, $name, $size, $type,$url, $error,            $index = null, $content_range = null) {        $file = parent::handle_file_upload(            $uploaded_file, $name, $size, $type,$url, $error, $index, $content_range        );        if (empty($file->error)) {            $sql = 'INSERT INTO `'.$this->options['db_table']                .'` (`name`, `size`, `type`, `url`, `title`, `description`)'                .' VALUES (?, ?, ?, ?,? , ?)';            $query = $this->db->prepare($sql);            $query->bind_param(                'sisss',                $file->name,                $file->size,                $file->type,                $file->url,                $file->title,                $file->description            );            $query->execute();            $file->id = $this->db->insert_id;        }        return $file;    }


我需要保存成
$url = $_COOKIE["uid"].'/'.date("Y").'/'.date("m").'/'.date("d").'/'. filename

要怎么改? 直接用$file->url就可以吗?




另外...因为这玩意,还弄到一个append取值问题,熟jq的朋友也可以去这帮帮小弟吧
http://bbs.csdn.net/topics/390862894


回复讨论(解决方案)

警告:mysqli_stmt::bind_param():在类型定义字符串不匹配的绑定变量的元素个数
这还不清楚吗?
$query->bind_param(
                ' sisss', //怎么只有 5 个类型声明?
                $file->name, //1
                $file->size, //2
                $file->type, //3
                $file->url, //4
                $file->title,//5
                $file->description //6 共6个
            );

警告:mysqli_stmt::bind_param():在类型定义字符串不匹配的绑定变量的元素个数
这还不清楚吗?
$query->bind_param(
                ' sisss', //怎么只有 5 个类型声明?
                $file->name, //1
                $file->size, //2
                $file->type, //3
                $file->url, //4
                $file->title,//5
                $file->description //6 共6个
            );


喔...原来这个问题

已成功解决了!

以前用完mysql_query后就转用pdo了,没用过mysqli,PDO好像就没怎么提过这写法

谢谢,学习了
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn