What are common pitfalls when using mysqli_real_escape_string in PHP?

One common pitfall when using mysqli_real_escape_string in PHP is forgetting to establish a database connection before calling the function. Another pitfall is not properly escaping special characters, leading to potential SQL injection vulnerabilities. To solve this, make sure to establish a connection to the database using mysqli_connect before using mysqli_real_escape_string, and always escape user input before using it in SQL queries.

// Establish a connection to the database
$connection = mysqli_connect("localhost", "username", "password", "database");

// Check if the connection is successful
if (!$connection) {
    die("Connection failed: " . mysqli_connect_error());
}

// Escape user input using mysqli_real_escape_string
$user_input = mysqli_real_escape_string($connection, $_POST['user_input']);

// Use the escaped input in an SQL query
$query = "SELECT * FROM users WHERE username = '$user_input'";
$result = mysqli_query($connection, $query);

// Remember to close the connection after using it
mysqli_close($connection);