PHPとSQLを使ってwebアプリを作成する為の勉強をしたいという人向けの記事です。
SQLとは
SQLとはデータベースを操作するための言語です、SQLの何たるかをわかっている人は飛ばしていただいて大丈夫です。
例えばuserテーブルを全件取得する場合は以下のようになります。
select * from user;
user_idが999のユーザー情報を取得する場合は以下です。where句というものが条件指定になる形です。
select * from user where user_id = 1;
SQLで出来ること
上記のようにデータベースからデータを取得する以外に、データの登録・更新・削除も可能です。
CREATE・READ・UPDATE・DELETEの頭文字を取ってCRUD(クラッド)なんて言われている処理になります。
以下の記事でそれぞれの処理について書いています。
基本的にはこの4つの基本処理が出来ればあとは応用で何とかなる形です。他にテーブル同士を結合するjoinなんかも知っておくと良いかもしれません。
PHPでSQLを使うには
PHPといえばMySQLということが多いと思うので、MySQLを利用した操作方法について書いていきたいと思います。
まず大きく分けて二つの利用方法があります。
- 素のPHPから使う
- フレームワークで使う
素のPHPから使う
DBの接続からSQLの実行まで自前でイチから書いてしまうケース。以下の記事で実例を書いています。
しかしこの方法はうまく書かないとSQLインジェクションなどの脆弱性があったりとあまりよろしくありません。
PHPを使うのであれば普通にLaravelなどのフレームワークを利用して、そちらの流儀にならってデータベース利用するのが良いです。
フレームワークで使う
というわけでLaravelからDBを利用する例は以下の記事になります。他にも覚えることが多いのでいきなり見ると大変かもです。
実はこの方法だとそもそもSQLをイチから書くみたいなことをしなくても済みます。
例えば最初の方に書いたIDの一致するユーザーを取得する場合は以下のように書いたりします。
$user = Users::where('user_id', Auth::id())->get();
最初こそフレームワーク独自のやり方を覚える学習コストがかかりますが、慣れるとイチからSQLを書くよりは簡単に書けるようになります。
SQLを勉強するには
フレームワークでは直書きせずに利用可能とはいえ、SQLを色々書いてみて勉強したいということもあると思います。
その場合は自分のマシンにXAMPPなりLAMPなりを入れて、PHPMyAdminを使ってデータベースを作ったりSQLを実行したりしてみると良いです。
すべてブラウザ上で操作できるのでコマンドラインより手軽で便利です。以下の記事でXAMPPのインストールからPHPMyAdminの利用まで書いています。
作成したSQLで望みの結果が返ってくるかどうかなどを確認したり、データベースを作成したり構造を変更する時なんかも便利です。
登録されているデータの確認なんかにもよく使いますね。
やりたいことに合わせてSQLを調べる
あとはやりたいことに合わせてSQLを書いて実行していけばOKです。
最初の方に書いた通りユーザーIDが指定のIDのユーザー情報を1件取得するとかはwhere句で簡単に書けます。
次にユーザーIDが指定の数字でかつ有効フラグが有効なユーザーなどの複合条件をしたいなど出てくるでしょう。
その場合はwhere句で条件をandで繋げれば良いなどを調べて書いてみて結果を見るという感じです。
フレームワークでもandの場合の書き方などが公式ドキュメントなどで書かれているので、そういうものを調べて参考にしていきます。
まとめ
基本的にはこれまで書いた通りですが、実際にやりたいことを実現しようとすると自分で調べて解決しなければいけない場合がほとんどです。
SQLまわりは調べればいくらでも出てくると思うので、やりたいことに合わせて調べながら勉強していってみてください。