mysqlのデータからcsvをつくろう

まず、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の作り方。