首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有进度条的CSV导入

带有进度条的CSV导入
EN

Stack Overflow用户
提问于 2014-11-10 14:01:20
回答 1查看 2.6K关注 0票数 0

我使用这个脚本将csv文件导入mysql数据库。

如何使用jquery和php显示将csv文件导入数据库的进度条?

我不需要真正的代码,只是一些信息。

提前谢谢。

代码语言:javascript
复制
    if ( $request->get( $_POST["action"] ) == "import" ) {

        $file = $upload->file_upload( "import", "media/import" );

        if ( file_exists( DIR_UPLOAD_PHOTO . "/media/import/" . $file ) ) {

            $file   = DIR_UPLOAD_PHOTO . "/media/import/" . $file;

            try {
                $dbh = new PDO("mysql:host=".HOST."; dbname=".DATABASE, USER, PASSWORD);

            }
            catch(PDOException $e) {
                echo $e->getMessage();
            }

            $handle = fopen( $file, "r" );
            $delimiter = '|';

            $dbh->beginTransaction();


            $stmt = $dbh->prepare("INSERT INTO products SET title = :title, price = :price
                                               ON DUPLICATE KEY UPDATE 
                                                           title = :title, price = :price"
            );


            fgets($handle);

            $rows = count(file($file));

            while ($line = fgetcsv($handle, 1000, $delimiter)) {

                    $line = array_map('trim', $line);


                    $stmt->bindParam(':title',          $line[0], PDO::PARAM_STR);
                    $stmt->bindParam(':price',          $line[1], PDO::PARAM_STR);

                    $stmt->execute();


            }


            $dbh->commit();
            fclose($handle);
            $dbh = null;


        }
    }
EN

回答 1

Stack Overflow用户

发布于 2014-11-10 19:37:37

最后,在MariaDB中,您可以以这种方式获得一些状态信息(不知道它是否也适用于MySQL ):

  • 在另一个进程中分叉INSERT INTO ...语句
  • 然后运行它。
  • 在主线程中使用SHOW PROCESSLIST获取INSERT语句的状态。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26845558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档