在 Laravel 中,使用 SQL 預處理可以有效防止 SQL 注入攻擊,同時提高代碼的可讀性。為了提升可讀性,你可以遵循以下幾點:
:name
)而不是位置參數(?
),這樣可以讓你更清楚地知道每個參數的作用。例如:$stmt = $pdo->prepare('SELECT * FROM users WHERE name = :name AND age = :age');
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);
$stmt = $pdo->prepare('SELECT * FROM users WHERE name = :name AND age = :age');
$stmt->bindParam(':name', $name, PDO::PARAM_STR); // 用戶名
$stmt->bindParam(':age', $age, PDO::PARAM_INT); // 年齡
DB::insert()
, DB::update()
, DB::delete()
等,可以讓你更簡潔地編寫預處理語句。例如:// 插入記錄
DB::insert('INSERT INTO users (name, age) VALUES (?, ?)', [$name, $age]);
// 更新記錄
DB::update('UPDATE users SET name = ? WHERE id = ?', [$name, $id]);
// 刪除記錄
DB::delete('DELETE FROM users WHERE id = ?', [$id]);
$user = User::where('name', $name)
->where('age', $age)
->first();
遵循以上建議,你可以在 Laravel 中編寫出既安全又易于閱讀的 SQL 預處理語句。