最近,我在使用 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 的類,包括以下方法:
在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中文網其他相關文章!