>  기사  >  백엔드 개발  >  PHP를 사용하여 시청 기록을 MySQL에 동기화하는 방법

PHP를 사용하여 시청 기록을 MySQL에 동기화하는 방법

PHPz
PHPz원래의
2023-04-12 09:21:33510검색

최근에 저는 PHP를 사용하여 비디오 시청 웹사이트를 작성하고 있었는데, 매우 일반적인 요구 사항은 사용자의 시청 기록을 데이터베이스에 저장하고 언제든지 동기적으로 업데이트하는 것임을 알게 되었습니다. 이러한 요구 사항을 바탕으로 다양한 구현 방법을 시도한 결과 최종적으로 시청 기록을 MySQL 데이터베이스에 동기화하는 솔루션을 선택했습니다. 이 기사에서는 PHP를 사용하여 시청 기록을 MySQL에 동기화하는 방법을 공유합니다.

먼저 MySQL 데이터베이스에 id, user_id, video_id 및 Created_at 필드가 포함된 watch_history라는 테이블을 만들었습니다. 그 중 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으로 문의하세요.