PHP怎么将观看记录同步到MySQL中

PHPzhong
PHPzhong原创
2023-04-12 10:20:5835浏览

最近,我在使用 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核实处理。