What are the potential pitfalls of using the mysql-*-API in PHP for database queries?

One potential pitfall of using the mysql-*-API in PHP for database queries is the lack of security measures against SQL injection attacks. To prevent this issue, it is recommended to use prepared statements with parameterized queries instead. This helps sanitize user input and prevent malicious SQL injection attacks.

// Using prepared statements with parameterized queries to prevent SQL injection

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

// Check for connection errors
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

// Prepare a SQL query with a parameter placeholder
$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ?");

// Bind parameters to the placeholder
$stmt->bind_param("s", $username);

// Set the parameter values
$username = "example_username";

// Execute the query
$stmt->execute();

// Fetch the results
$result = $stmt->get_result();

// Output the results
while ($row = $result->fetch_assoc()) {
    echo "Username: " . $row['username'] . "<br>";
}

// Close the statement and connection
$stmt->close();
$mysqli->close();