mysqli_query:SQL文の実行
Webページからデータベースへの書き込み
前章でデータベースへのリンクができましたがそれだけではつなげた意味がありません。
そこからの操作・表示ができるようになってはじめてデータベースとつなげた効果があります。
なので、PHP上でSQLを実行できるようにしましょう。
mysqli_query:SQL文の実行
文字コードの指定の時にも使用したmysqli_queryですが、これにはPHP上でSQLを実行する効果があります。
下のようなINSERT文を実行してみましょう。
制作したプログラムを実行すればデータベースの方に実行文の結果が出ているので確認してみましょう。
今回はid4に新しくクジラを挿入したので表示されていれば成功です。
これでPHPを利用してのデータべース操作の基本は完了です。ここではINSERTの例のみを行っていますが
CREATE、DELETEなどの他の操作も実行することができます。
FORMと組み合わせて入力値をFORMで送信した値などを当てはめることでWebページ上で自由に入力した
値でデータベースを自由に操作することもできるようになります。
SELECTの場合
SQLを実行できるようになりなりましたがSERECTだけは注意が必要です。他のは実行すれば結果が出ます
が、SELECTは値を引き出しているので条件次第でカラムがすべて引き出されることがあります。
また、条件によってヒットする内容が複数の場合もあるのでその点も注意が必要です。
SELECTの実行方法:mysqli_fetch_assoc
SELECTは結果が戻り値として帰ってくるのでまずは変数に保存します。ここでつけている変数名は
テーブルから引き出したレコードの集合の名称であるrecordsetにしています。
次にレコードセットを連想配列に直します。そのためには「mysqli_fetch_assoc」という専用のファンクションが
用意されており、これを使用することで内容が連想配列に置き換わり表示できるようになります。
そしてSELECTで引き出した内容を表示させるときはprintもしくはecho文で表示させます。そのとき表示
内容の指定として変数の次にカラム名で表示内容を指定しています。形式としては次のようになっています。
複数またはすべての内容を表示する
先ほどまでの方法では表示される結果が1件のみであり、SELECTの本来の結果を引き出したことにはなりません。
SELECTは条件にあてはまるものをすべて表示させるのが正しい使い方なので該当結果の2件目以降を表示させなければ
なりません。そのためにはmysqli_fetch_assocを繰り返し使うことで2件目以降を引き出すことができます。
これを利用してすべてのデータを表示してみましょう。
実行方法としてはwhileを利用して、繰り返しmysqli_fetch_assocを実行させることで該当件数が終了するまで
変数に代入し表示させることができます。