PDO Database Access
// Connect
\$pdo = new PDO(
"mysql:host=localhost;dbname=test",
\$user, \$password,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
// Prepared statement (prevents SQL injection)
\$stmt = \$pdo->prepare(
"SELECT * FROM users WHERE email = :email"
);
\$stmt->execute(['email' => \$email]);
\$user = \$stmt->fetch(PDO::FETCH_ASSOC);
// Named vs positional
\$stmt = \$pdo->prepare(
"INSERT INTO users (name, email) VALUES (?, ?)"
);
\$stmt->execute([\$name, \$email]);
// Transactions
\$pdo->beginTransaction();
try {
// multiple queries
\$pdo->commit();
} catch (Exception \$e) {
\$pdo->rollBack();
}