<?php
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$user = 'root';
$password = 'password';
try {
$pdo = new PDO($dsn, $user, $password, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // エラーモードを例外に設定
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // デフォルトのフェッチモードを連想配列に
]);
echo "接続成功";
} catch (PDOException $e) {
echo "接続失敗: " . $e->getMessage();
}
?>
$sql = "SELECT * FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id', 1, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetch();
print_r($result);
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', '田中 太郎', PDO::PARAM_STR);
$stmt->bindValue(':email', 'taro@example.com', PDO::PARAM_STR);
$stmt->execute();
echo "データを挿入しました";
try {
$pdo->beginTransaction();
$pdo->exec("UPDATE users SET balance = balance - 100 WHERE id = 1");
$pdo->exec("UPDATE users SET balance = balance + 100 WHERE id = 2");
$pdo->commit();
echo "トランザクション成功";
} catch (Exception $e) {
$pdo->rollBack();
echo "トランザクション失敗: " . $e->getMessage();
}