Webアプリケーションの多くは、ユーザー情報や記事などのデータをデータベースPDO(PHP Data Objects)を使って、安全かつ柔軟にMySQLと接続できます。
本記事では、PDOによるMySQL接続方法、基本的なSQL操作(SELECT/INSERT/UPDATE/DELETE)、さらにフォームと連携したデータ登録処理まで、実用的なサンプルを交えてわかりやすく解説します。

目次
MySQL接続(PDOの使い方)
<?php
$dsn = "mysql:host=localhost;dbname=sample_db;charset=utf8mb4";
$user = "root"; $password = "";
try {
$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "接続成功!";
} catch (PDOException $e) {
echo "接続失敗: " . $e->getMessage();
}
>
- dsn:データベース接続情報(host, dbname, charset)
- setAttribute:エラーモードを例外に設定(推奨)
基本のSQL操作(SELECT, INSERT, UPDATE, DELETE)
サンプルテーブル users
(id, name, email)を対象に、各操作の例を見てみましょう。
INSERT(データの追加)
<?php
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([ ":name" => "田中", ":email" => "tanaka@example.com" ]);
echo "登録完了";
>
SELECT(データの取得)
<?php
$sql = "SELECT * FROM users"; $stmt = $pdo->query($sql);
foreach ($stmt as $row) {
echo $row["name"] . "(" . $row["email"] . ")<br>";
}
>
UPDATE(データの更新)
<?php
$sql = "UPDATE users SET email = :email WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->execute(
[ ":email" => "tanaka_new@example.com", ":name" => "田中" ]
);
>
DELETE(データの削除)
<?php
$sql = "DELETE FROM users WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->execute(
[":name" => "田中"]
);
>
prepare + executeでSQLインジェクション対策にもなります。
データベースと連携したフォーム処理
以下は、名前とメールを登録するフォーム+INSERT処理の連携例です。
<!-- form.php -->
<?php
$pdo = new PDO("mysql:host=localhost;dbname=sample_db;charset=utf8mb4", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$message = "";
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$name = trim($_POST["name"] ?? "");
$email = trim($_POST["email"] ?? "");
if ($name !== "" && filter_var($email, FILTER_VALIDATE_EMAIL)) {
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->execute([":name" => $name, ":email" => $email]);
$message = "登録が完了しました。";
} else {
$message = "正しい名前とメールを入力してください。";
}
}
>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>ユーザー登録フォーム</h2>
<p><?= htmlspecialchars($message, ENT_QUOTES, "UTF-8") ?></p>
<form method="post"> 名前:<input type="text" name="name"><br>
メール:<input type="email" name="email><br>
<input type="submit" value="登録">
</form>
</body>
</html>
まとめ
今回は、PHPでMySQLと安全にやり取りするための基本を解説しました。
- PDOでのMySQL接続:セキュアで汎用的な方法
- SQL基本操作:SELECT / INSERT / UPDATE / DELETE
- フォーム連携:POSTからDBにデータを登録
この知識があれば、PHPによる本格的なWebアプリケーションの土台が整います。
次回は、入力フォーム+一覧表示+削除など、ミニCRUDアプリ作成を目指しましょう!