What are some common pitfalls when working with PHP forms and databases, as seen in the provided code snippet?

One common pitfall when working with PHP forms and databases is not properly sanitizing user input before inserting it into the database, which can lead to SQL injection attacks. To solve this issue, always use prepared statements or parameterized queries to safely handle user input.

// Original code snippet with SQL injection vulnerability
$username = $_POST['username'];
$password = $_POST['password'];

$query = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
$result = mysqli_query($connection, $query);

// Fixed code snippet using prepared statements
$username = $_POST['username'];
$password = $_POST['password'];

$query = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = mysqli_prepare($connection, $query);
mysqli_stmt_bind_param($stmt, 'ss', $username, $password);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);