はじめに
Webアプリ開発を始めたばかりの方にとって、「PHPからデータベースにどうやって接続するの?」というのは最初の大きなハードルのひとつです。
今回は、初心者でもわかるようにPHPでMySQLに接続する方法を丁寧に解説していきます。
使用するのは、PHP公式が推奨する接続方法であるPDO(PHP Data Objects)。セキュリティや保守性の面でも優れているので、はじめからPDOに慣れておくのがおすすめです。
PDOとは?なぜ使うの?
PDOとは「PHP Data Objects」の略で、PHPから複数種類のデータベースに安全かつ簡潔にアクセスするための抽象化されたデータベース接続インターフェースです。
PDOを使うメリットには以下が挙げられます。
- MySQL以外にも、SQLite・PostgreSQLなど複数のDBに対応
- プレースホルダーを使った安全なSQL実行が可能(SQLインジェクション対策)
- コードが見やすく、保守しやすい
データベースに接続してみよう(基本のコード)
今回は、test
という名前のMySQLデータベースに接続してみます。まずはシンプルな接続コードを見てみましょう。

<?php
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$user = 'root'; // 環境に応じて変更してください
$pass = 'root';
$dbh = new PDO($dsn, $user, $pass);
var_dump($dbh);
?>
このコードをブラウザで実行すると、PDOオブジェクトが返ってきていれば接続成功です。

コードの中身を詳しく解説
$dsn(Data Source Name)
データベースの接続情報をまとめた文字列です。
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
mysql
: 使用するデータベースの種類host=localhost
: データベースが動いているホスト名dbname=test
: 使用するデータベース名charset=utf8
: 文字化け防止のための文字コード指定
$userと$pass
MySQLにログインするためのユーザー名とパスワードです。開発環境によって異なる場合があるので、適宜変更してください。
例外処理(try-catch)でエラーに備える
実際の開発では、接続失敗時にエラー内容を表示する処理が重要です。
try-catch構文の基本形
try {
// 接続処理
} catch (PDOException $e) {
// エラー処理
}
エラーを表示するには「オプション指定」が必要
$dbh = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
このオプションを使うことで、接続エラーやSQLエラーが例外(Exception)として投げられるようになります。
完成版:PDOでの安全な接続コード
以下は、例外処理を含んだ推奨の接続コードです。
<?php
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$user = 'root';
$pass = 'root';
try {
$dbh = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
echo 'データベースへの接続に成功しました。';
$dbh = null; // 接続終了
} catch (PDOException $e) {
echo '接続失敗: ' . $e->getMessage();
exit();
}
?>
echo
で接続成功メッセージを表示$dbh = null;
で接続を明示的に終了exit();
で処理を中断し、後続のエラーを防止
以下のように表示されていれば成功です。

【補足】エラーを意図的に出してみる
たとえば、パスワードをわざと間違えると…
$pass = 'wrongpassword';

ブラウザにはこのようなエラーメッセージが表示されます。
このように、$e->getMessage()
が詳細なエラー情報を提供してくれるので、トラブルシュートにも便利です。
まとめ:まずは安全な接続をマスターしよう!
PHPとMySQLの接続は、Webアプリ開発の第一歩。
最初は難しそうに見えても、PDOを使えば比較的シンプルかつ安全に扱えます。
今回のように、基本の構文と例外処理をマスターしておけば、次は「SQLでデータを取得する」ステップにもスムーズに進めます。
今後は、
- データの取得(SELECT)
- 新規登録(INSERT)
- 更新や削除(UPDATE/DELETE)
といった操作も解説していきたいと思います!
コメント