【初心者向け】PHPでMySQLに接続する方法|PDOを使った安全なデータベース接続を解説!

PHP

はじめに

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)

といった操作も解説していきたいと思います!

コメント

タイトルとURLをコピーしました