What are the potential pitfalls of directly accessing database columns in PHP without proper validation or sanitization?

Directly accessing database columns in PHP without proper validation or sanitization can lead to SQL injection attacks, where malicious code is injected into SQL queries. To prevent this, always sanitize and validate user input before using it in database queries. This can be done using prepared statements or using functions like mysqli_real_escape_string().

// Example of using prepared statements to prevent SQL injection
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->bindParam(':username', $username);
$stmt->execute();