PHPからMySQLデータを取得した際に一括で配列に入れる方法
2020/09/25
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側のカラム名になるみたい。可読性と保守性が上がるので今後はこれを使っていく。
関連記事
MySQLで大文字小文字
半角英数字のみのフォームで入力した値を検索した際、 データに差異が発生。 [Aa ...
sshでMySQLの操作
今までMySQLを操作するときはphpmyadminから 行っていたけど、php ...
htmlspecialcharsを通してMySQLに格納したものを元に戻して出力
MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...
MySQLでdatetime型にもインデックスを使用して高速化を図る方法
ログ関連のデータを格納するテーブルがあり、集計を行う際に非常に時間がかかった。レ ...
MySQLのトリガーを使用して特定のテーブルの操作を行った際に別テーブルにログを残す方法
MySQLにトリガーという機能があるらしくどのようなものか調べたところ、事前に「 ...