PHP を使用して表示レコードを MySQL に同期する方法

PHPz
リリース: 2023-04-12 10:20:58
オリジナル
548 人が閲覧しました

最近、PHP を使用してビデオ視聴 Web サイトを作成していましたが、非常に一般的な要件が、ユーザーの視聴履歴をデータベースに保存し、いつでも同期して更新することであることがわかりました。この要件に基づいて、さまざまな実装方法を試した結果、最終的に視聴記録を 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): 指定したユーザーの視聴記録をすべてクリアします
  4. #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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート