首頁  >  文章  >  後端開發  >  PHP怎麼將觀看記錄同步到MySQL中

PHP怎麼將觀看記錄同步到MySQL中

PHPz
PHPz原創
2023-04-12 09:21:33505瀏覽

最近,我在使用 PHP 編寫一個影片觀看網站,發現一個很常見的需求是把使用者的觀看歷史記錄保存到資料庫中,並且隨時同步更新。基於此需求,我嘗試了多種實作方式,最終選擇了將觀看記錄同步到 MySQL 資料庫中的方案。本文將分享我是如何使用 PHP 實作觀看記錄同步到 MySQL 的。

首先,我在 MySQL 資料庫中建立了一個名為 watch_history 的表,該表包含以下欄位:id、user_id、video_id 和 created_at。其中,id 為主鍵,user_id 指使用者的 ID,video_id 指觀看的影片 ID,created_at 指記錄的建立時間。

接下來,在PHP 程式碼中,我建立了一個名為WatchHistory 的類,包括以下方法:

  1. add($userId, $videoId):新增一則使用者的觀看記錄
  2. getList($userId):取得指定使用者的觀看記錄清單
  3. clean($userId):清除指定使用者的所有觀看記錄

在add 方法中,我使用INSERT INTO 語句在watch_history 表中新增一筆記錄。範例程式碼如下:

public function add($userId, $videoId) {
    $created_at = date('Y-m-d H:i:s');
    $sql = "INSERT INTO watch_history (user_id, video_id, created_at) VALUE ('$userId', '$videoId', '$created_at')";
    // 执行 MySQL 插入操作
    // ...
}

在 getList 方法中,我使用 SELECT 語句從 watch_history 表中取得指定使用者的所有觀看記錄。範例程式碼如下:

public function getList($userId) {
    $sql = "SELECT * FROM watch_history WHERE user_id = '$userId' ORDER BY created_at DESC";
    // 执行 MySQL 查询操作
    // ...
}

在 clean 方法中,我使用 DELETE 語句從 watch_history 表中刪除指定使用者的所有觀看記錄。範例程式碼如下:

public function clean($userId) {
    $sql = "DELETE FROM watch_history WHERE user_id = '$userId'";
    // 执行 MySQL 删除操作
    // ...
}

最後,為了避免頻繁連接和關閉資料庫連接,我使用了一個名為 Database 的單例類別來管理 MySQL 資料庫的連接。範例程式碼如下:

class Database {
    private static $_instance;
    private $_pdo;
    private function __construct() {
        // 连接 MySQL 数据库
        // ...
    }
    public static function getInstance() {
        if (!self::$_instance) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    public function query($sql, $params = null) {
        $stmt = $this->_pdo->prepare($sql);
        $stmt->execute($params);
        return $stmt;
    }
}

至此,我成功實現了將觀看記錄同步到 MySQL 資料庫的功能。雖然這只是一個簡單的例子,但相信該方案在實際​​開發中也是可行的。希望我的經驗能對各位 PHP 開發者有幫助。

以上是PHP怎麼將觀看記錄同步到MySQL中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn