まず、mysqlからpdoでデータを取得し、csvデータを作りたいと思います。
まずvagrantでcsv保存用にs3というフォルダをつくります。
まず、mysqlに接続します。
Database changed
mysql> show tables;
+———————+
| Tables_in_laravel57 |
+———————+
| articles |
| documents |
| migrations |
+———————+
3 rows in set (0.00 sec)
mysql> select * from articles;
+—-+———-+——–+————–+———–+———————+————————–+—————-+———————+———————+
| id | login_id | role | name | password | mail | test_mail | updated_person | created_at | updated_at |
+—-+———-+——–+————–+———–+———————+————————–+—————-+———————+———————+
| 1 | user1 | master | taniguchi | passowrd | laravel@gmail.com | laravel_test@gmail.com | sasaki | 2018-09-21 21:39:07 | 2018-09-21 21:39:07 |
| 2 | user2 | master | goto | himitsu | laravel@hotmail.com | laravel_test@hotmail.com | sasaki | 2018-09-22 08:31:54 | 2018-09-22 08:51:32 |
| 3 | user3 | master | 橋本太郎 | password3 | laravel@gmail.com | laravel_test@gmail.com | こばやし | 2018-09-22 15:03:11 | 2018-09-22 15:03:11 |
| 4 | user4 | master | 後藤大輔 | password4 | laravel@gmail.com | laravel_test@gmail.com | こばやし | 2018-09-22 15:48:56 | 2018-09-22 15:48:56 |
| 9 | user2 | master | goto | himitsu | laravel@hotmail.com | laravel_test@hotmail.com | sasaki | 2018-09-22 17:41:59 | 2018-09-22 17:41:59 |
+—-+———-+——–+————–+———–+———————+————————–+—————-+———————+———————+
5 rows in set (0.00 sec)
データは入ってますね。続いて、batchというフォルダをつくり、そこからpdoを作ります。
try { $pdo = new PDO('mysql:host=localhost;dbname=laravel57;charset=utf8','root','', array(PDO::ATTR_EMULATE_PREPARES => false)); } catch(PDOException $e){ exit('データベース接続失敗。'.$e->getMessage()); } $stmt = $pdo->query("select * from articles"); while($row = $stmt -> fetch(PDO::FETCH_ASSOC)){ $id[] = $row['id']; $login_id[] = $row['login_id']; $role[] = $row['role']; $name[] = $row['name']; $password[] = $row['password']; $mail[] = $row['mail']; $test_mail[] = $row['test_mail']; $updated_person[] = $row['updated_person']; $created_at[] = $row['created_at']; $updated_at[] = $row['updated_at']; } var_dump($role);
ここまではOK。何の問題もなし。
続いて、CSVの作り方。