खोज…


परिचय

यह स्क्रिप्ट रिपोर्टिंग डिवाइस (IoT) को संभालने के लिए डिज़ाइन की गई है, जब कोई डिवाइस पहले से अधिकृत नहीं है (डेटाबेस में डिवाइस तालिका में), मैं नए डिवाइस को new_devices तालिका में जोड़ता हूं। मैं एक अपडेट क्वेरी चलाता हूं, और अगर प्रभावित_रो रिटर्न <1, मैं सम्मिलित करता हूं।

जब मेरे पास एक नई डिवाइस रिपोर्ट होती है, तो पहली बार $ stmt-> प्रभावित_रो इसे चलाता है 0, बाद में संचार 1, फिर 1, 0, 2, 2, 2, 0, 3, 3, 3, 3, 3 , 0, 4, 0, 0, 6, 6, 6, आदि

यह ऐसा है जैसे कि अपडेट स्टेटमेंट विफल हो रहा है। क्यों?

PHP का $ stmt-> प्रभावित_रो आंतरायिक रूप से 0 लौटाता है जब उसे एक सकारात्मक पूर्णांक वापस करना चाहिए

<?php
    // if device exists, update timestamp
    $stmt = $mysqli->prepare("UPDATE new_devices SET nd_timestamp=? WHERE nd_deviceid=?");
    $stmt->bind_param('ss', $now, $device);
    $stmt->execute();
    //echo "Affected Rows: ".$stmt->affected_rows; // This line is where I am checking the status of the update query.

    if ($stmt->affected_rows < 1){ // Because affected_rows sometimes returns 0, the insert code runs instead of being skipped. Now I have many duplicate entries.
        
        $ins = $mysqli->prepare("INSERT INTO new_devices (nd_id,nd_deviceid,nd_timestamp) VALUES (nd_id,?,?)");
        $ins -> bind_param("ss",$device,$now);
        $ins -> execute();
        $ins -> store_result();
        $ins -> free_result();
    }
?>


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow