
【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操作も試してみてください!
