Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带进度条的CSV导入_Php_Jquery_Mysql_Pdo - Fatal编程技术网

Php 带进度条的CSV导入

Php 带进度条的CSV导入,php,jquery,mysql,pdo,Php,Jquery,Mysql,Pdo,我使用这个脚本将csv文件导入mysql数据库 如何显示使用jquery和php将csv文件导入db的进度条 我不需要实际的代码,只需要一些信息 提前谢谢 if ( $request->get( $_POST["action"] ) == "import" ) { $file = $upload->file_upload( "import", "media/import" ); if ( file_exists( DIR_UPLOAD_PH

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

如何显示使用jquery和php将csv文件导入db的进度条

我不需要实际的代码,只需要一些信息

提前谢谢

    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;


        }
    }

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

  • 在另一个进程中,将
    INSERT插入到…
    语句中
  • 然后运行它
  • 在主线程中使用
    showprocesslist
    获取
    INSERT
    语句的状态

你能分享你的尝试吗?这方面的教程太多了,很高兴知道你正在尝试的方法,这样我们可以更容易地帮助你。我只需要一些信息开始。不是实际的代码如果你需要信息开始,你应该搜索教程。这可能需要一些改进。在循环中绑定和重新绑定变量没有意义。在循环之外绑定它们
bind($foo);绑定($bar)
,然后
while(list($foo,$bar)=fgetcsv(…)