勉強したことのメモ

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のトリガーを使用して特定のテーブルの操作を行った際に別テーブルにログを残す方法

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

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

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

MySQLでテーブル構造とデータをコピーする方法

MySQLで既にあるテーブルとデータに対して実験を行う必要があった。本番テーブル ...

MySQLで歯抜けになっているint型の数値を取得する

MySQLで歯抜けになっているシーケンス番号を 取得したいケースがあった。 ■ソ ...

MySQLiでINSERT文

MySQLiでINSERT文 ■ソース $mysqli = new mysqli ...