5-3. PHPでデータベース操作の基礎
更新日:2025年12月7日
5-3. PHPでデータベース操作の基礎について解説します。
データベースは、Webアプリケーションの情報を永続的に保存する場所です。 PHPのPDO(PHP Data Objects)を使って、安全にデータベースを操作する方法を学習します。
PDOとは
- データベース抽象化レイヤー:様々なデータベースに対応
- プリペアドステートメント:SQLインジェクション対策
- エラーハンドリング:例外処理に対応
- オブジェクト指向:モダンなPHP開発に最適
データベース接続
<?php
$host = 'localhost';
$dbname = 'myapp';
try {
$pdo = new PDO(
"mysql:host=$host;dbname=$dbname;charset=utf8mb4",
'root', 'password',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
} catch (PDOException $e) {
echo "接続失敗: " . $e->getMessage();
}
?>
基本的なCRUD操作
CREATE(挿入)
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name' => '山田太郎', ':email' => 'yamada@example.com']);
READ(読み取り)
$sql = "SELECT * FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':id' => 1]);
$user = $stmt->fetch();
UPDATE(更新)
$sql = "UPDATE users SET name = :name WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name' => '山田花子', ':id' => 1]);
DELETE(削除)
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':id' => 1]);
トランザクション処理
try {
$pdo->beginTransaction();
// 複数の処理
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
}
JavaScriptとの連携例
// PHP側(api/users.php)
header('Content-Type: application/json');
$stmt = $pdo->query("SELECT * FROM users");
echo json_encode($stmt->fetchAll());
// JavaScript側
fetch('api/users.php')
.then(r => r.json())
.then(users => displayUsers(users));
セキュリティのポイント
| 脅威 | 対策 |
|---|---|
| SQLインジェクション | プリペアドステートメント |
| 不正な入力 | バリデーション |
| データ漏洩 | 最小権限の原則 |
まとめ
PDOを使用することで、安全で効率的なデータベース操作が可能になります。 必ずプリペアドステートメントを使用し、適切なエラーハンドリングを実装しましょう。
免責事項
本コンテンツは2025年12月時点の情報に基づいて作成されている。最新の情報については公式ドキュメントを参照されたい。
本コンテンツは2025年12月時点の情報に基づいて作成されている。最新の情報については公式ドキュメントを参照されたい。