クマのブログ

つまづいたところ、学びを書いていきます

【PHP】mysqliの理解

前提

背景

  • 会社の研修中、PHPの基礎講座を受講

  • 今の会社に就職前に独学でPHPを学習していたが、初めて知ったことがあったので、アウトプット

事象(やりたいこと)

  • カリキュラムにあった以下コードのforeach文が何しているのか知りたい
/* DB接続済前提 */
// SQL設定
$sql = 'SELECT id, name, hobby FROM users';

// SQLの実行
$result = mysqli_query($link, $sql);

// SQLの実行結果を配列に格納
while($row = mysqli_fetch_array($result)){

~~~

}

試したこと

公式マニュアルで確認

知ったこと

  • mysqli_fetch_arrayは引数内にSQLの実行結果を格納する。

返り値は配列に格納するデータがあればtrue、データがなければfalseといった感じ。

  • whileは( )内でtrueである限り繰り返しを行う。

ここでは$row = mysqli_fetch_array($result)がtrueを返す、

=配列に格納するデータがある限りtrueを返すので、全データを格納するまで繰り返し処理を行い続ける

  • $row = mysqli_fetch_array($result)にデータがなくなった時点でfalseを返すのでwhile文を抜ける、ということになる

所感

  • マニュアル(1次情報)から信憑性の高い情報を使って関数の意味を確認し、何をしているか把握することができた、という工程を踏むことができたのは成長を感じた

  • while文の内、$rowmysqli_fetch_array($result)格納することは必要ないと感じた。

(foreach文以降、$rowを使って処理をすることはなかったため)