Are there any best practices for handling database operations in PHP to ensure data integrity?

To ensure data integrity when handling database operations in PHP, it is important to use prepared statements to prevent SQL injection attacks, validate user input before executing queries, and handle errors gracefully by using try-catch blocks. Additionally, using transactions can help maintain consistency in the database by ensuring that a series of operations either all succeed or all fail.

// Establish a database connection
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "username", "password");

// Use prepared statements to prevent SQL injection
$stmt = $pdo->prepare("INSERT INTO users (username, email) VALUES (:username, :email)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);

// Validate user input
if (!empty($username) && !empty($email)) {
    // Execute the query within a transaction
    $pdo->beginTransaction();
    try {
        $stmt->execute();
        $pdo->commit();
        echo "User data inserted successfully";
    } catch (PDOException $e) {
        $pdo->rollBack();
        echo "Error: " . $e->getMessage();
    }
} else {
    echo "Please provide a username and email";
}