MySQL超时/崩溃发送大量数据

时间:2015-03-02 14:19:32

标签: php mysql laravel

我尝试使用http://www.maatwebsite.nl/laravel-excel/docs从XLS文档发送562行数据

每一行都是需要保存的用户,但当这个行运行180-200行时,Laravel会崩溃。

这可以是Laravel,我的XAMPP服务器(我运行脚本的地方)还是数据库本身?

        $path = Input::file('file')->getRealPath();


    Excel::load($path, function($reader) {

        $data = $reader->get();

        foreach($data as $row) {

            $rows = User::where('email', $row['e_postadress'])->count();

            if($rows == 0)
            {
                if($row['status'] == "Administratör")
                {
                    $admin = 1;
                }
                else 
                {
                    $admin = 0;
                }

                $user = new User;

                $user->email = $row['e_postadress'];
                $user->fname = $row['fornamn'];
                $user->lname = $row['efternamn'];

                $user->save();
            }

        }

    }, 'UTF-8'); 

1 个答案:

答案 0 :(得分:0)

嗨:)我用MySQL命令解决了这个问题:LOAD DATA INFILE

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

您可以在几秒钟内添加大文件。但我认为你必须在.csv中改变你的.xls

示例(codeIgniter语法,请适应laravel):

        $dataload = 'LOAD DATA LOCAL INFILE "Path_of_the_file" 
                    REPLACE
                    INTO TABLE gc_csv CHARACTER SET "latin1"
                    FIELDS TERMINATED BY "\t"
                    IGNORE 1 LINES
                ';

    return (bool)$this->db->query($dataload);