Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự kiện phía máy chủ với PHP và MySQL

Bạn đang thiếu một vài thứ ở phía máy chủ để làm cho việc này hoạt động.

Đầu tiên, như @RiggsFilly đã chỉ ra, bạn cần sử dụng mệnh đề WHERE trong câu lệnh. Điều kiện phải là tìm kiếm các giao dịch mới hơn so với lần gửi cuối cùng.

Vì vậy, bạn cần theo dõi dấu thời gian của tin nhắn được gửi gần đây nhất.

Máy chủ sẽ chỉ gửi một thông báo nếu truy vấn, bây giờ với điều kiện, trả về một kết quả.

Cuối cùng, toàn bộ quy trình kiểm tra các giao dịch mới và gửi tin nhắn nếu được tìm thấy phải được lưu giữ trong một vòng lặp.

<?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. jetty-env.xml với DataSource dẫn đến lỗi WebAppContext trên mvn jetty:run

  2. Datetime trong PHP Script

  3. Cách ngăn bản ghi trùng lặp từ bảng của tôi Chèn bỏ qua không hoạt động ở đây

  4. Cập nhật cột trong cơ sở dữ liệu nơi có giá trị tối đa php mysql

  5. MySQL Chọn Nhiều GIÁ TRỊ