跳到主要内容

database

数据库访问与 ORM 概览

PDO、mysqli、常见 ORM(Eloquent/Doctrine)与查询构建器、连接池与迁移。

PDO 与预处理

$pdo = new PDO('mysql:host=127.0.0.1;dbname=app;charset=utf8mb4', 'user', 'pass', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
$stmt->execute(['id' => 1]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

防注入:总是使用预处理;禁用魔术转义;对 LIKE 模式转义 %/_

事务

$pdo->beginTransaction();
try {
// ...
$pdo->commit();
} catch (Throwable $e) {
$pdo->rollBack();
throw $e;
}

迁移与 Seeder

  • Laravel:php artisan migratedb:seed
  • Doctrine Migrations:版本化 SQL/DDL;
  • 测试夹具:构造最小数据,使用事务回滚或重置数据库。