How can switching to mysqli_* or PDO in PHP improve security when interacting with databases?

Switching to mysqli_* or PDO in PHP can improve security when interacting with databases by using parameterized queries, which help prevent SQL injection attacks. These methods also provide better error handling and support for prepared statements, making it easier to sanitize input data and prevent malicious queries from being executed.

// Using PDO for interacting with a database
$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
    $stmt->bindParam(':username', $username);
    $stmt->execute();
    
    // Fetch data
    while ($row = $stmt->fetch()) {
        // Process data
    }
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}