Mysql
 sql >> база данни >  >> RDS >> Mysql

Събития от страна на сървъра с PHP и MySQL

Липсват ви няколко неща от страна на сървъра, за да работи това.

Първо, както посочи @RiggsFilly, трябва да използвате клауза WHERE в изявлението. Условието трябва да е да търсите транзакции, които са по-нови отколкото последното изпратено.

За това трябва да следите времевата марка на последното изпратено съобщение.

Сървърът трябва да изпрати съобщение само ако заявката, сега с условието, върне резултат.

И накрая, цялата рутина за проверка за нови транзакции и изпращане на съобщение, ако бъде намерена, трябва да се поддържа в цикъл.

<?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализиране на стойността на AUTO_INCREMENT на всички таблици в MySQL база данни

  2. Премахване на MySQL 5.7 напълно

  3. Как да върнете резултатите от заявката като списък, разделен със запетая в MySQL

  4. Убийте MySQL заявката при прекратяване на потребителя

  5. MySQL заявката с множество оператори И изглежда игнорира един