勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPからMySQLデータを取得した際に一括で配列に入れる方法

   2020/09/25  PHP MySQL データベース

MySQLからデータを取得して、PHP側で配列に入れる際に今まで一個ずつ書いていた。ソースとしては以下のような形。

 

$query = '
	SELECT *
	FROM tableA
';
$row = $mysqli->query($query);

while ($rs = $row->fetch_array(MYSQLI_ASSOC)) {
	$data['name'] = $rs['name'];
	$data['id'] = $rs['id'];
	$data['pass'] = $rs['pass'];
	$data['status'] = $rs['status'];
	$data['mail'] = $rs['mail'];
}

 

 

ただ、他の人のソース見て衝撃だったんだけど、こんなまだるっこしい事をしなくても一括で取得できた。

 

//1件のみ取得なら以下のような形
$query = '
	SELECT * 
	FROM tableA 
	LIMIT 1
';
$row = $mysqli->query($query);

if($rs = $row->fetch_array(MYSQLI_ASSOC)) {
	$date = $rs;
}

//複数件を取得するなら以下のような形
$query = '
	SELECT * 
	FROM tableA 
';
$row = $mysqli->query($query);

while ($rs = $row->fetch_array(MYSQLI_ASSOC)) {
	$data[$rs['code']] = $rs;
}

 

 

キーに関してはMySQL側のカラム名になるみたい。可読性と保守性が上がるので今後はこれを使っていく。

 - PHP MySQL データベース

  関連記事

MySQLで大文字小文字

半角英数字のみのフォームで入力した値を検索した際、 データに差異が発生。 [Aa ...

sshでMySQLの操作

今までMySQLを操作するときはphpmyadminから 行っていたけど、php ...

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

MySQLでdatetime型にもインデックスを使用して高速化を図る方法

ログ関連のデータを格納するテーブルがあり、集計を行う際に非常に時間がかかった。レ ...

MySQLのトリガーを使用して特定のテーブルの操作を行った際に別テーブルにログを残す方法

MySQLにトリガーという機能があるらしくどのようなものか調べたところ、事前に「 ...