Heim  >  Artikel  >  Backend-Entwicklung  >  So synchronisieren Sie Anzeigedatensätze mit MySQL mit PHP

So synchronisieren Sie Anzeigedatensätze mit MySQL mit PHP

PHPz
PHPzOriginal
2023-04-12 09:21:33510Durchsuche

Vor kurzem habe ich mit PHP eine Website zum Ansehen von Videos geschrieben und festgestellt, dass eine sehr häufige Anforderung darin besteht, den Betrachtungsverlauf des Benutzers in der Datenbank zu speichern und ihn jederzeit synchron zu aktualisieren. Basierend auf dieser Anforderung habe ich verschiedene Implementierungsmethoden ausprobiert und mich schließlich für die Lösung entschieden, Anzeigedatensätze mit der MySQL-Datenbank zu synchronisieren. In diesem Artikel erfahren Sie, wie ich PHP verwende, um Anzeigedatensätze mit MySQL zu synchronisieren.

Zuerst habe ich in der MySQL-Datenbank eine Tabelle namens watch_history erstellt, die die folgenden Felder enthält: id, user_id, video_id undcreated_at. Unter diesen ist id der Primärschlüssel, user_id bezieht sich auf die ID des Benutzers, video_id bezieht sich auf die ID des angesehenen Videos undcreated_at bezieht sich auf die Erstellungszeit des Datensatzes.

Als nächstes habe ich im PHP-Code eine Klasse namens WatchHistory erstellt, die die folgenden Methoden enthält:

  1. add($userId, $videoId): Anzeigedatensatz eines neuen Benutzers hinzufügen
  2. getList($userId): Holen Sie sich die Überwachungsdatensatzliste des angegebenen Benutzers
  3. clean($userId): Alle Überwachungsdatensätze des angegebenen Benutzers löschen

In der Add-Methode verwende ich die INSERT INTO-Anweisung, um einen Datensatz zur Tabelle watch_history hinzuzufügen. Der Beispielcode lautet wie folgt:

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 插入操作
    // ...
}

In der getList-Methode verwende ich die SELECT-Anweisung, um alle Überwachungsdatensätze des angegebenen Benutzers aus der Tabelle watch_history abzurufen. Der Beispielcode lautet wie folgt:

public function getList($userId) {
    $sql = "SELECT * FROM watch_history WHERE user_id = '$userId' ORDER BY created_at DESC";
    // 执行 MySQL 查询操作
    // ...
}

In der Clean-Methode verwende ich die DELETE-Anweisung, um alle Überwachungsdatensätze des angegebenen Benutzers aus der Tabelle watch_history zu löschen. Der Beispielcode lautet wie folgt:

public function clean($userId) {
    $sql = "DELETE FROM watch_history WHERE user_id = '$userId'";
    // 执行 MySQL 删除操作
    // ...
}

Um häufiges Herstellen und Schließen von Datenbankverbindungen zu vermeiden, habe ich schließlich eine Singleton-Klasse namens Database verwendet, um die Verbindung zur MySQL-Datenbank zu verwalten. Der Beispielcode lautet wie folgt:

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;
    }
}

Zu diesem Zeitpunkt habe ich die Funktion zum Synchronisieren von Anzeigedatensätzen mit der MySQL-Datenbank erfolgreich implementiert. Obwohl dies nur ein einfaches Beispiel ist, glaube ich, dass diese Lösung auch in der tatsächlichen Entwicklung machbar ist. Ich hoffe, dass meine Erfahrung allen PHP-Entwicklern hilfreich sein kann.

Das obige ist der detaillierte Inhalt vonSo synchronisieren Sie Anzeigedatensätze mit MySQL mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn