What are some best practices for implementing a message service in PHP for user communication?

Issue: Implementing a message service in PHP for user communication requires creating a system to send, receive, and store messages between users. Code snippet:

// Create a database table to store messages
CREATE TABLE messages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    sender_id INT,
    receiver_id INT,
    message TEXT,
    sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

// Function to send a message
function sendMessage($sender_id, $receiver_id, $message) {
    // Connect to the database
    $conn = new mysqli("localhost", "username", "password", "database");

    // Prepare the SQL statement
    $stmt = $conn->prepare("INSERT INTO messages (sender_id, receiver_id, message) VALUES (?, ?, ?)");
    $stmt->bind_param("iis", $sender_id, $receiver_id, $message);

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

    // Close the connection
    $stmt->close();
    $conn->close();
}

// Function to retrieve messages for a user
function getMessages($user_id) {
    // Connect to the database
    $conn = new mysqli("localhost", "username", "password", "database");

    // Prepare the SQL statement
    $stmt = $conn->prepare("SELECT * FROM messages WHERE receiver_id = ?");
    $stmt->bind_param("i", $user_id);

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

    // Get the result set
    $result = $stmt->get_result();

    // Fetch messages
    $messages = $result->fetch_all(MYSQLI_ASSOC);

    // Close the connection
    $stmt->close();
    $conn->close();

    return $messages;
}