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. SQL त्रुटि मैं इसे समझ नहीं सकता

  2. शामिल हुए बिना एकाधिक तालिकाओं से चयन करें?

  3. mysql में कॉलम का चयन करने के लिए इफ इफ कंडीशन का उपयोग करें?

  4. चेतावनी:mysqli_connect ():(HY000/1045):उपयोगकर्ता 'उपयोगकर्ता नाम' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:हाँ)

  5. MySQL my.cnf फ़ाइल - बिना पूर्ववर्ती समूह के विकल्प मिला