What is the difference between mysqli and mysqli_stmt in PHP?

The main difference between mysqli and mysqli_stmt in PHP is that mysqli is used for executing SQL queries directly in a procedural way, while mysqli_stmt is used for executing prepared statements, which can help prevent SQL injection attacks and improve performance by reusing query execution plans. Using mysqli_stmt is recommended for executing queries with user input to ensure data security.

// Using mysqli_stmt to execute a prepared statement
$conn = new mysqli($servername, $username, $password, $dbname);

$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);

$username = "example_user";
$stmt->execute();

$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
    // Process the fetched data
}

$stmt->close();
$conn->close();