Category Archives: PHP

PHPでMySQLをいじくる

こういう記事を書く度に今時の人たちはSQLなんて書かないんだろうなぁとか思いながら書いてます。

さて、PHPでMySQLをいじる場合には、PDOという物を使います。次に紹介するページを見るとより詳しく書いてあるので、詳しい話が見たい人はそこを見てください。

PDOの利用

まぁ色々書いてありますが、とりあえず色んなデータベースに対して、コネクションストリングさえ渡してあげれば同じインターフェースで扱えるDB用の機能といったところでしょうか。実際の使い方を見て行きます。

データベースの情報が無いと話が進められないので、仮にデータベース情報が以下であるとします。

  • 使用DB: mysql
  • データベース名: company
  • DBのあるホスト: localhost
  • ユーザ名: user
  • パスワード: password

これで、companyデータベースへ接続が出来ます。次に、このpdoオブジェクトを用いてSQLを発行してみましょう。ここではcompanyに存在するdeptテーブルから情報を引き出す事にします。

このようにしてSQL文を発行する事が出来ます。また、JavaのPreparedStatement的な使い方も出来るので、例えばidが1番のものを取ってきたいときはこんな感じで書く事もできます。

bindParam関数で変数をバインドします。あ、確かこの時、bindParam関数内で、バインドする値には変数以外使えないことに注意します。例えば、こういう書き方すると、できない。

はい。そしたら結果を見てみましょう。こうやって見ます。

ここでは、PDOStatementクラスのfetchメソッドを使っています。引数にデータ取得のスタイルを入れる事が出来ます。ここでは、結果セットに 返された際のカラム名で添字を付けた配列を返す、PDO::FETCH_ASSOCを使います。このように書く事で、deptListという配列の中に、結果セットが入りました。では、一応web用かなにかで利用する為に、この値をjsonで返してみましょう。

なにも難しい事はないですね。

PHPでhttpリクエストを処理 (GET編)

最近色んなフレームワークが使われていて、結構開発を行う際に楽に行えたりしてきてると思います。けれどもその反面、一度覚えちゃえばいいのかもしれないけれども、ちょちょっとテストしたり、小規模なシステムを作るときとかに、わざわざ大きなフレームワークを入れたりするのはめんどくさい。ましてや、その動作を覚えたり、内部的に何やってんのかわからなくて詰まるのは本望じゃない。そういうときの為に簡単にhttpリクエストを処理する方法を、超簡単に書く。

今回やるのは、http://example.com/example.php?message=hogeみたいなhttpリクエストを得た場合に、受け取ったhogeを返すプログラム。プログラムと呼べない程簡単なプログラム。例えばこんな感じ。

example.php

こうすると、http://example.com/example.php?message=hogeってwebブラウザで叩くと、hogeってページが表示される。このとき、httpリクエストはPHP内では$_GETという名前の連想配列で管理される。ちなみにPOSTの場合は$_POSTという名前の連想配列で管理される。非常に簡単。でもこのままだとやっぱり困るので、せめてあるかないかチェックくらいしておく。

example.php

こうすると、メッセージにパラメータが入ってるかどうかをチェックできる。PHPの場合はisset関数でこれをチェックする。さらにモジュラーにするために、実際に処理を定義したcontroller.phpをそこから呼ぶようにしてみる。

example.php

controller.php

こうすることで、URLを管理する部分と、実際に処理をする部分を別々に管理できる。余談だけど、includeするときは、しっかりとパスストリングを確かめないと、変なエラーでハマるかも。(dirname(__FILE__)関数は、最後に”/”をつけてくれないから、自分でつける必要がある、等)。