[PHP]PDO備忘録
<?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(); }