sql >> Databáze >  >> RDS >> Mysql

Události na straně serveru s PHP a MySQL

Aby to fungovalo, na straně serveru vám chybí několik věcí.

Za prvé, jak zdůraznil @RiggsFilly, musíte v prohlášení použít klauzuli WHERE. Podmínkou by mělo být vyhledávání transakcí, které jsou novější než naposledy odeslaná.

Za tímto účelem musíte sledovat časové razítko poslední odeslané zprávy.

Server by měl odeslat zprávu pouze v případě, že dotaz, nyní s podmínkou, vrátí výsledek.

Nakonec musí být celá rutina pro kontrolu nových transakcí a odeslání zprávy, pokud je nalezena, udržována ve smyčce.

<?php 
include 'conn.php'; // database connection

header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");

$query = "SELECT TimeStamp, CardNo FROM transactions WHERE TimeStamp > ?";
$stmt = $conn->prepare($query);
$ts = time();

while(true) 
{
    if ($result = $stmt->execute([$ts])) {
        $row = $result->fetch_assoc();
        echo "data: " . $row['CardNo'] . "\n\n";
        $ts = $row['TimeStamp'];
        flush();
    }
    sleep(2);
}


  1. ERROR 1049 (42000):Neznámá databáze 'mydatabasename'

  2. JSON v SQL Server

  3. jak se vypořádat s přízvuky a podivnými znaky v databázi?

  4. Tabulka pouze pro čtení v mysql