PHPでデータベース(MySQL)に接続する方法
  • facebookページ
  • twitterページ
  • 2017.10.23

    PHPでデータベース(MySQL)に接続する方法

    今回は、最近PHPの勉強を開始した初心者の方を対象にデータベースへ接続する方法を紹介します。データベース(以降:DB)としては、一般的に使用されているMySQLを例にしますが、基本的には、他のDBも同じ方法で接続出来ます。

    ちなみに世界で使用されているDBのランキング(2017.9現在)を確認してみますと、 MySQLは現在2位となっていてよく利用されているDBであることがわかります。

    環境を準備しましょう!

    まず、今回の環境を紹介致します。

    • 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

    データベースを作成してみよう!

    では、今回の主役であるデータベースの作成に入ります。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 Ver 14.14 Distrib 5.6.35, for osx10.9 (x86_64)

    のようにバージョン情報が表示されていればOKです。
    次にDBを作成していきます。まず、上述したようにコマンドをMySQLサーバーに対して送ることができる状態になるために、以下のコマンドを実行してください。

    うまくいくと、ターミナル上で、

    mysql>

    と表示され、コマンド入力待ちになります。
    ここで、うまくコマンド入力待ちにならない方は、既に、知らないうちにMySQLサーバーがインストールされている可能性があります。その場合は、一旦、MySQLサーバーとMAMPをアンインストールし、再度MAMPを再インストールするか、もしくは、次のようにMAMPディレクトリ以下に配置されているmysqlを指定すると上手くいくかもしれません。

    3. データベースの作成

    では、1. データベースの仕様で決めた内容に沿ってデータベースを作成していきます。とは言っても、以下の1行のみで作成が出来てしまいます。意外と簡単ですね!

    これで、testDBデータベースが文字コードutf8で作成されました!

    !注意)
    ここで、以下のようなエラーが表示された方は、rootユーザーに対して、まずパスワードを設定しましょう。まずexitコマンドでMySQLコマンド入力モードから抜けます。

    そして、以下のコマンドでMySQLサーバーがデフォルトで持っているrootユーザーに対してパスワードを設定します。パスワードは、適当に各自で設定頂いても大丈夫です。

    以下のコマンドでmysqlモードに入りましょう。

    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

    PDOクラスを使用し、インスタンス化します。この時、引数として、dbnameにデータベース名。hostには、MySQLサーバーが存在しているホストを指定します。PHPファイルが実行されるサーバーと異なる別のサーバーに存在する場合は、そのホスト名、もしくはIPアドレスを指定したりすることになります。

    3. 実行してみましょう!

    では、作成したdb_access.phpを実行してみましょう。MAMPのWebサーバー(今回は、Apacheを選択しています。)が起動していることを確認し、ブラウザを起動します。そして、ブラウザからhttp://localhost:8080/db_access.php にアクセスしてみてください。画面にsuccess connecting DBと表示されたらDB接続成功です!

    おわりに

    PDOクラスを使用して接続する例を紹介しましたが、実プロジェクトでは、PHPに限らずフレームワークと呼ばれるものを使用してアプリケーションを構築して行くことが、ほとんどです。フレームワークの種類は、現在よく使われているものを挙げると6、7個あります。そしてフレームワーク毎にコーディングルールが違うので、ビジネスロジックを書く部分においては、それぞれの特徴があり、習得する必要がありますが、DBの接続に関しては、ほぼ、どのフレームワークもDB設定ファイルというものを持っており、そこにデータベースの仕様を記述するようになっているので、フレームワークを変更したとしてもDB接続することに関しては、あまり意識することも無いようになっています。

    最近ですと、PHP初心者も最初からフレームワークの導入から勉強することが多くなってきていますが、今回のような基本的なところを知っておくことは、アプリケーションを作成する上で、きっと役に立つ時が来るので、頭の片隅に置いておくと良いでしょう。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE