データベースの利用 - PHP

  • 作成日:
  • 最終更新日:2026/01/19

データベースへの接続

phpファイルからデータベースへ接続します。データベースはsqliteを使います。

ディレクトリ構成は以下のようにします。

ディレクトリ構成

  • myapp
    • db
      • myapp.db
    • index.php

PHPファイル

「 index.php 」ファイルを以下のようにします。

<?php
try {
    // index.php があるディレクトリ基準
    $dbPath = __DIR__ . '/db/myapp.db';

    $pdo = new PDO('sqlite:' . $dbPath);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {
    exit('DB接続エラー: ' . $e->getMessage());
}

$stmt = $pdo->query("SELECT id, name, email FROM users");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>SQLite テスト</title>
</head>
<body>

<h1>ユーザー一覧</h1>

<?php if (empty($rows)): ?>
  <p>データがありません</p>
<?php else: ?>
  <ul>
    <?php foreach ($rows as $row): ?>
      <li>
        <?= htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8') ?>
        (<?= htmlspecialchars($row['email'], ENT_QUOTES, 'UTF-8') ?>)
      </li>
    <?php endforeach; ?>
  </ul>
<?php endif; ?>

</body>
</html>

データベース

データベースとテーブルを作成するには以下のようにします。

まず、dbディレクトリに移動します。以下のコマンドを実行しデータベースへ接続します。

sqltie3 myapp.db

SQL を実行しテーブルの作成とデータを登録します。

# テーブルの作成

CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL,
    created_at TEXT NOT NULL
);

# データの投入
INSERT INTO users (name, email, created_at)
VALUES ('山田太郎', 'yamada@example.com', datetime('now'));

内蔵サーバーの起動

以下を実行し内蔵サーバーを起動します。

php -S localhost:8000

「 http://localhost:8000/ 」に接続してデータが取得できているか確認します。

「 Ctrl + C 」でサーバーを停止することができます。