最近、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 というクラスを作成しました。
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 サイトの他の関連記事を参照してください。