我正在使用宅基地流浪者来存储数据库...现在我以品牌在自己的宅基地中创建了表

mysql> desc brands;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+


我正在从此表中获取大量数据。现在我想从.csv格式保存的Excel中添加此表的字段,我如何做到这一点...

最佳答案

我几年前在网上找到了此代码。它可能需要稍作修改,但是概念在那里。

在您的Database Seeder文件中,在run()方法中:

// path to csv file
$csvFilename = app_path().'/../database/seeds/csv/filename.csv';

// run the seeder and get the variable to store the CSV data array
$seedData = $this->seedFromCSV($csvFilename, ',');

// Insert into your table
DB::table($csvTable)->insert($seedData);


现在,在下面的播种器中,确保标题名称与数据库中的表名称匹配。

/**
 * Collect data from a given CSV file and return as array
 *
 * @param $filename
 * @param string $deliminator
 * @return array|bool
 */
private function seedFromCSV($filename, $deliminator = ',')
{

    $header = NULL;
    $data = array();

    if(($handle = fopen($filename, 'r')) !== FALSE)
    {
        while(($row = fgetcsv($handle, 1000, $deliminator)) !== FALSE)
        {
            if(!$header) {
                $header = $row;
            } else {
                $data[] = array_combine($header, $row);
            }

        }

        fclose($handle);
    }

    return $data;

}

08-27 16:54