【6日でできるPHP入門】PHPからデータベースを操作する

 PHPはWebアプリ開発だけでなく、MySQLなどのデータベースと連携して情報を管理・表示するのに最適な言語です。
この記事では、PHPスクリプトからデータベースに接続し、レコードの取得・追加・エラー処理を行う基本を、サンプルを使いながら詳しく解説します。

1.PHPでデータベースを操作する基礎

1.1. データベースのrootユーザのパスワードの設定

MAMPインストール直後は、rootユーザにパスワードが設定されていません。

rootユーザにパスワードを設定していない場合は、データベースのrootユーザのパスワードの設定を行う必要があります。

1.「ユーザアカウント」タブに切り替え、「権限を編集」のリンクをクリックします。

2.rootユーザーのパスワードを設定します。

「Change password」タブを選択します。

ここでは、練習用にrootユーザーのパスワードに「root」と設定します。

「パスワード」と「再入力」に「root」と入力したら、「実行」ボタンをクリックします。

1.2. データベースへの接続と例外処理

 PHPからMySQLなどのデータベースに接続するには、PDO(PHP Data Objects)クラスやmysqli拡張を利用します。
ここでは例外処理(try-catch)を使い、エラー発生時も安全に処理できる構成を紹介します。

用語・構文説明
PDOクラスPHPから様々なDBにアクセスできる拡張機能
try〜catchエラー(例外)発生時に実行する処理を指定する構文
PDOExceptionデータベース操作時に発生する例外クラス

サンプル(bookshop.booksから全件取得)

ファイル名: lesson69_1.php

<?php
try {
  // (1) DB接続
  $db = new PDO('mysql:host=localhost;dbname=bookshop', 'root', 'root');
  // (2) SQLクエリ準備
  $stmt = $db->prepare("SELECT * FROM books;");
  // (3) クエリ実行
  $res = $stmt->execute();

  if ($res) {
    // (4) データ取得
    $all = $stmt->fetchAll();
    foreach($all as $row) {
      echo "ID: {$row['book_id']} / タイトル: {$row['title']} / 著者: {$row['author']} / 在庫: {$row['stock']}<br>";
    }
  }
  $db = null; // 切断
} catch(PDOException $e) {
  echo "データベース接続失敗<br>";
  echo $e->getMessage();
}
?>

実行結果

1.3. レコードの挿入

新しい書籍データをINSERT文で追加する例です。
バインド機能(bindParam)で安全に値をセットできます。

ファイル名: lesson69_2.php

<?php
try {
  $db = new PDO('mysql:host=localhost;dbname=bookshop', 'root', 'root');
  $book_id = 104;
  $title = "Laravel実践";
  $author = "高橋直樹";
  $stock = 4;
  $stmt = $db->prepare("INSERT INTO books VALUES (?, ?, ?, ?);");
  $stmt->bindParam(1, $book_id, PDO::PARAM_INT);
  $stmt->bindParam(2, $title, PDO::PARAM_STR);
  $stmt->bindParam(3, $author, PDO::PARAM_STR);
  $stmt->bindParam(4, $stock, PDO::PARAM_INT);
  $stmt->execute();
  $db = null;
  echo "書籍データを追加しました。";
} catch(PDOException $e) {
  echo "データベース接続失敗<br>";
  echo $e->getMessage();
}
?>

実行結果

SELECTで確認

「lesson69_1.php」を実行します。

追加後にSELECTで確認すると、book_id=104の新しい行が増えています。

実行結果

2.よく使うPHPのDB操作命令

命令・メソッド主な用途
new PDO(...)データベース接続
prepare(SQL)SQL文の事前準備
bindParam(n, v, t)SQLの?の場所に変数値を割り当て
execute()SQL文を実行
fetchAll()実行結果をすべて配列で取得
fetch()結果を1件ずつ取得

3.例外処理とエラーハンドリング

  • データベースアクセス時はtry-catch構文で安全に制御
  • エラー内容は$e->getMessage()で取得・表示可能
  • 処理が終わったら$db = null;で接続を閉じる。

まとめ

  • PHPはPDOやmysqliを使って安全かつ簡単にデータベース操作が可能
  • SELECTでデータ取得、INSERTで新規追加ができる。
  • エラー処理や値のバインドを活用して、実用的なプログラムを組もう。
  • 次はUPDATEやDELETEなど、さらに発展的なDB操作も試してみてください!