PHPのMySQLに接続する方法を解説します。
- PHPからMySQLへ接続したい
- SELECT文で条件を指定して実行するには?
このような内容について解説します。
私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。
WEBシステム開発において、MySQLやPostgreSQLなどへのデータベース接続はほぼ必須なので、これを機に覚えましょう。
それでは行きましょう!
PDOとは
データベースに依存しないでDB接続することができるPHP標準クラスです。
PHP5より前は、データベースの種類によって関数を使い分けていました。
例を挙げると、MySQLへの接続は「mysql_connect関数」、PostgreSQLへの接続は「pg_connect関数」を使う必要がありました。
このように関数を分けていたのを、PDOクラスを使うことで関数を意識する必要がなくなりました。
サンプルデータを用意する
今回は、次のサンプルデータ「users」テーブルを用意しました。

データは「山田太郎、山田花子」の2レコード入っています。
こちらのテーブルにPHPからPDOクラスを使って接続したいと思います。
PHPからMySQL接続
MySQLに接続するソースコードを書いてみました。
まず「new PDO」で、MySQLの接続情報を指定して$pdo変数に格納します。
オプションとして「ホスト名、データベース名、ユーザー名、パスワード」と、レコード列名をキーとして取得させるため「PDO::FETCH_ASSOC」を設定しています。
<?php // データベースに接続 $pdo = new PDO( // ホスト名、データベース名 'mysql:host=localhost;dbname=testdb;', // ユーザー名 'root', // パスワード '', // レコード列名をキーとして取得させる [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ] ); // SQL文をセット $stmt = $pdo->prepare('SELECT * FROM users'); // SQL文を実行 $stmt->execute(); // ループして1レコードずつ取得 foreach ($stmt as $row) { var_dump($row); } ?>
実行結果:

テーブルにあった2レコードを表示することができました。
今回は「var_dump($row);」で一気に画面出力していますが、
実際に1つずつ使うには「$row[‘name’]、$row[‘address’]」のように連想配列としてキー名を指定して使用します。
条件指定してSQL実行
SQL文に条件指定するには、PDOクラスのbindValue関数を使用します。
「PHPからMySQL接続」で説明したソースコードに、条件指定を追加しています。
「id」が「1」のレコードを取得するように条件指定しています。
<?php $pdo = new PDO( 'mysql:host=localhost;dbname=testdb;', 'root', '', [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ] ); // 条件指定したSQL文をセット $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id'); // 「:id」に対して値「1」をセット $stmt->bindValue(':id', 1); $stmt->execute(); foreach ($stmt as $row) { var_dump($row); } ?>
実行結果:

「id=1」の「山田太郎」を取得することができました。
まとめ
PHPのMySQLに接続する方法を解説しました。
- PDOとは(データベースに依存しないPHP標準クラス)
- PHPからMySQL接続(ソースコードの書き方)
- 条件指定してSQL実行(bindValue関数を使用する)
今回はPDOクラスを使ってMySQLへ接続しましたが、
実践でのデータベース接続は Laravelや CakePHPなどのフレームワークのルールに従って接続します。
ですが、MySQLデータベース接続に必要な「ホスト名、データベース名、ユーザー名、パスワード」の指定の仕方・考え方はPDOクラスでも同じです。
プログラミング学習を挫折せずに続けて成功できる人は
- 「目的目標を明確にすること」
- 「質問・相談できる環境を作ること」
- 「自己解決スキルを身に着けること」
この3つを大切にしてると思います。
ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。
-
テックキャンプ
本気でIT業界に転職したい方におすすめです。
転職できなかったら全額返金があります。 -
DMM WEBCAMP
国から認定されているスクールです。
やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。 -
TechAcademy
1週間の無料体験があります。
気軽にスクールを体験したい方向けです。