2012-06-10PHPからMySQLのデータベースへの接続PHPからMySQLへの接続に関する基本の「き」を書きたいと思う。ついでに、使い回し可能でシンプルなコードも残しておく。実際、これも検索したのだけれど、初心者レベルで理解が容易な情報がすぐに見つからなかったので。想定読者は、「とりあえずPHPとMySQLをはじめた。MySQLへ接続も試した。すべてのファイルに何度もmysql_connect(‘‘,’‘,’*’)を書くのは面倒。クラス作成ももうちょっと慣れてからにしたい。準備まずは、接続に必要な情報をまとめたファイルを作ります。DBConfig.phpとします。なんでこれが必要かというと、次に作成する基本のファイルから見る為なのですが、ファイルを一つにまとめない理由は、DBConfig.phpをブラウザからアクセスできない場所に置くことで、情報を取られるのを防ぐことが目的ということです。パスワードつぎに、これを利用して実際にサーバーに接続する為のファイルを作ります。DBConnect.phpとします。mysql_real_escape_string($value);}解説します。最初の、require_once()でDBConfig.phpを読み込みます。これで、DBConfig.phpの定数にアクセスできるようになります。今は同じ階層の設定になっていますが、実際は階層を分けた方がよいでしょう。connect()でDBConfig.phpで設定した情報を基にDBに接続します。接続を解除するときはcolose($link)を使います。prepare($value)でもっともシンプルなエスケープを作りました。SQLインジェクションと言って、SQLに不正な文言を送って情報の引き出しやデータベースの破壊をするという攻撃への対策です。queryなども用意しようと思いましたが、まだそちらの方の理解が追いついていないため、本当に基本的なところだけを押さえました。クラスを使うともっと便利になると思うのですが、同じ理由で今回は使いません。下記のようにして使います。接続を解放するclose($link);DBConnect.phpを使う前とほとんど変わらないように見えますが、mysql_connect()がなくなった分すっきりしています。$sqlにsql文を入れ、prepare()でエスケープ処理をしています。mysql_query()でクエリを実行し、while~で値を取得しています。mysql_fetch_array($result)){}”を利用することで、レコードが連想配列として$rowに入ります。あとは、波括弧の中で値を取り出します。例としてこういうシンプルなテーブルを想定しましたが、上記スクリプトの実行結果は、「1taro2jiro」になります。今回は、[PHP][MySQL]MySQL用のDB接続クラスを参考にさせていただきました。本当に初歩的なコードだと思いますが、ここが始まりです。今後さらに充実させていこうと思っています。コメントデータの処理方法の詳細はこちらをご覧ください。