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側のカラム名になるみたい。可読性と保守性が上がるので今後はこれを使っていく。
関連記事
-
mysqldumpが使えないレンタルサーバでMySQLのバックアップ
mysqldumpが使えないレンタルサーバで開発を行うことがあり、尚且つ他社に使 ...
-
MySQLでwhere句を使ってカラム指定でデータをコピーする方法
MySQLで大量のデータを保存しているテーブルがあり、そのデータを絞った上で尚且 ...
-
MySQLでカラム数の異なるテーブルを結合する(UNION)
MySQLでカラム数の異なるテーブル同士をUNIONで結合させたかった。ただ、何 ...
-
MySQLでdatetime型のカラムから秒は省いて検索する方法
MySQLでdatetime型のカラムに対して「2022-10-07 10:30 ...
-
MySQLでデータの集計時に1日の起点を任意の時間に変更する方法
MySQLで1日毎の集計を行う際、例えば2020/01/01のデータは2020/ ...