PHPを含むシステム開発ではほぼ必須となっているデータベース(以降:DB)接続ですが、プログラミング学習を始めたばかりの方には少し敷居が高く感じるかも知れません。
本記事では、PHPプログラムからMySQLというDBに接続する方法について、サンプルコードを掲載しながら初心者向けに丁寧にご紹介していきます。
- PHPからデータベースへの接続は簡単
- 今回のサンプルはMAMP環境
- PHPとMySQLの組み合わせが手軽
- MacもWindowsも手順は基本的に同じ
- PHPからの接続手順は1つではない
環境を準備しましょう!
まず、今回の環境を紹介致します。
- OS: OSX 10.12.6
- 開発環境: MAMP
OSは、MacOSXを使いますので、必然的にパソコンは、Macになります。またPHPやデータベースの環境としては、MAMPを使用します。そのため、操作の手順については、MacOSXで使用する例を記述致しますが、WindowsOSの方もほとんど違いはないので参考にしてみてください。本来、実際の業務では、AWSなどのクラウド環境にLinuxベースのインスタンスを用意し、その上でPHPやデータベースなどの環境を構築していきますが、セキュリティポリシーを各々業務に合わせる必要があったり、Linuxの使用方法などアプリケーションを作成する以外の準備が必要です。
これらの準備に対する知見や勉強は、細かく覚えて行くと時間がかかりますので、今回は、環境を簡単に整えられるMAMPを選択しました。WindowsOSの方では、どちらかといえばXAMPPが有名でが、Windows用のMAMPも用意されているので、そちらを使用してみてください。
では、まずMAMPをここからダウンロードし、ダブルクリックしてインストールしましょう! 簡単です! インストールが終了したら1度MAMPを起動してPHPが動作するかを確認しておきましょう。
1. サーバーの起動
MAMPを起動すると図1のようなダイアログ画面が起動します。まず、このダイアログの一番右にある『サーバーを起動』をクリックします。すると、今クリックしたボタンの上に表示されている『Apacheサーバー』『MySQLサーバー』の右側の四角形が緑色になります。
図1
2. MAMPのスタート画面の表示
次に、ダイアログ画面(図1)の中央にある『オープンWebStartの』ボタンをクリックします。すると、ブラウザにMAMPのウェルカム画面(図2)が表示されます。
図2
3. phpの確認(phpinfo)
表示されたウェルカム画面の左上に『PHPの設定を知るには、phpinfo の出力内容を見てください。 』と記載されています。このphpinfoの文字にリンクが貼られているので、そこをクリックします。以下の様な画面(図3)が表示されればOKです!
図3
PHPからデータベース接続のようなスキルが学べるスクールならこちら
データベースを作成してみよう!
では、今回の主役であるデータベースの作成に入ります。MAMPの『サーバを起動』をクリックしてMySQLサーバーが起動状態であることを確認しておいてください。(図4)
図4
勘の良い方であれば、ウェルカムページに『MySQLデータベースは phpMyAdmin を使って管理できます。』という記載を見つけ、phpMyAdminで作成が出来るのでは?と思われた方も居らっしゃるでしょう。まさに、このphpMyAdminというツールを使ってWebブラウザ上から作成することも可能です。phpMyAdminは、Webブラウザ経由でGUIでの操作となっておりイメージもしやすいので、実際のプロジェクトでも良く使われています。ですが、今回は、あえてコマンドラインからデータベースを作成する方法を紹介します。
1. データベースの仕様
今回作成するデータベースの仕様を下記に記載します。この仕様に沿ったDBを作成して行きます。
- DB名: testDB
- 文字コード: utf8
- DBアクセスユーザー名: root
- DBアクセスパスワード: root_password
2. mysqlコマンドの確認
MacOSXに標準でインストールされているアプリケーション”ターミナル”を起動します。このウィンドウから、コマンド(命令)を入力してデータベースを作成していきます。
DBの作成には、MySQLサーバーに対して命令を実行して行います。そのためには、MySQLサーバーにコマンドを送る状態になる必要があります。まず、その状態になるためのmysqlコマンドが実行出来るか?を念のため確認しましょう。
> mysql —version
環境によって、表示のフォーマットは違いますが、
mysql Ver 14.14 Distrib 5.6.35, for osx10.9 (x86_64)
のようにバージョン情報が表示されていればOKです。
次にDBを作成していきます。まず、上述したようにコマンドをMySQLサーバーに対して送ることができる状態になるために、以下のコマンドを実行してください。
> mysql
うまくいくと、ターミナル上で、
mysql>
と表示され、コマンド入力待ちになります。
ここで、うまくコマンド入力待ちにならない方は、既に、知らないうちにMySQLサーバーがインストールされている可能性があります。その場合は、一旦、MySQLサーバーとMAMPをアンインストールし、再度MAMPを再インストールするか、もしくは、次のようにMAMPディレクトリ以下に配置されているmysqlを指定すると上手くいくかもしれません。
> /Applications/MAMP/Library/bin/mysql
「コマンド操作に苦手意識がある」といった方には、「ポテパンキャンプ」での無料カウンセリングもおすすめです。
3. データベースの作成
では、1. データベースの仕様で決めた内容に沿ってデータベースを作成していきます。とは言っても、以下の1行のみで作成が出来てしまいます。意外と簡単ですね!
mysql>create database testDB default character set utf8;
これで、testDBデータベースが文字コードutf8で作成されました!
!注意)
ここで、以下のようなエラーが表示された方は、rootユーザーに対して、まずパスワードを設定しましょう。まずexitコマンドでMySQLコマンド入力モードから抜けます。
mysql>exit
そして、以下のコマンドでMySQLサーバーがデフォルトで持っているrootユーザーに対してパスワードを設定します。パスワードは、適当に各自で設定頂いても大丈夫です。
>/Applications/MAMP/Library/bin/myqladmin -u root password 'root_password'
以下のコマンドでmysqlモードに入りましょう。
>/Applications/MAMP/Library/bin/mysql -uroot -p root_password
PHPからデータベース接続のようなスキルが学べるスクールならこちら
PHPからデータベースに接続してみよう!
1. PHPファイルの配置
データベースの作成が完了しました。では、PHPプログラムから先ほど作成したtestDBデータベースに接続をしてみます。今回は、プログラムの実行をWebブラウザから起動する方法にします。そのため、記述するPHPプログラムファイルはMAMPで実行されるWEBサーバーのドキュメントルート直下に置くことにします。ドキュメントルートは、以下MAMPの設定画面から確認することが出来ます。赤枠箇所(図5)をクリックするとドキュメントルートのフォルダーが開きますので、念のため確認しておきましょう。標準では、/Applications/MAMP/htdocs になっています。
図5
では、次にPHPプログラムのファイル名を決めておきます。名前は何でも良いですが、今回は仮にdb_access.phpとしました。PHPファイルの置き場所は、こうなります。
/Applications/MAMP/htdocs/db_access.php
2. DBへの接続コード
PHPでDBへ接続するためには、いくつか方法があります。現在は、PDOクラスを使用する方法が主流です。今回は、このPDOクラスで接続してみます。いきなりですが、下記が、接続するまでのコード全体になります。
db_access.php
try { // データベースに接続 $pdo = new PDO( 'mysql:dbname=testDB;host=localhost;charset=utf8', 'root', 'root_password', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ] ); echo "success connecting DB"; } catch (PDOException $e) { /* エラー時は、とりあえず、エラーメッセージを表示 */ header('Content-Type: text/plain; charset=UTF-8', true, 500); exit($e->getMessage()); }
PDOクラスを使用し、インスタンス化します。この時、引数として、dbnameにデータベース名。hostには、MySQLサーバーが存在しているホストを指定します。PHPファイルが実行されるサーバーと異なる別のサーバーに存在する場合は、そのホスト名、もしくはIPアドレスを指定したりすることになります。
3. 実行してみましょう!
では、作成したdb_access.phpを実行してみましょう。MAMPのWebサーバー(今回は、Apacheを選択しています。)が起動していることを確認し、ブラウザを起動します。そして、ブラウザからhttp://localhost:8080/db_access.php にアクセスしてみてください。画面にsuccess connecting DBと表示されたらDB接続成功です!
DB接続だけでなく「プログラミング知識を体系的に学びたい」といった方は、「ポテパンキャンプ」での無料カウンセリングがおすすめです。
おわりに
本記事内では、PDOクラスを使用したDB接続例をご紹介してきましたが、PHPに限らずフレームワークを利用することでより手軽で便利な機能を利用することが可能となります。
今回ご紹介した基本をベースに、フレームワークもしっかりと学習しPHPプログラマーとしてスキルアップしていきましょう。