Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JSON डेटा को पार्स करना और MySQL में सम्मिलित करना

  1. जॉन को साहचर्य सरणी में आँख बंद करके परिवर्तित न करें। यह और भी समस्याएं पैदा करता है।
  2. विशेष वर्णों या आरक्षित शब्दों वाली संपत्तियों तक पहुँचने के लिए $data->{'$ts'} जैसे प्लेसहोल्डर का उपयोग करें
  3. यदि आवश्यक हो तो सरणियों और वस्तुओं के माध्यम से लूप करें।
  4. एक ऑटो इंक्रीमेंट जोड़ना id कॉलम टू टेबल एक डिवाइस के लिए डेटा स्टोर करने में मदद करता है।
  5. time जोड़ना एक अच्छा विचार है करने के लिए error_log टेबल भी

आपके मूल प्रश्न के संक्षिप्त संस्करण का परीक्षण किया गया और यह काम करता है।

<?php
        $_user = 'root';
        $_password= 'root';
        $_db = 'localtest';
        $_host = 'localhost';
        $_port = 3306;
    $con = new mysqli($_host, $_user, $_password, $_db) or die(mysql_error);

    //read the json file contents
    $jsondata = file_get_contents('test.json');

    //do not convert to array
    $json = json_decode($jsondata);

    $id = $json->device->sn;
    foreach($json->data as $key => $data){
        if(empty($data) || !isset($data->{'$ts'})){
            continue;
        }
        if (isset($data->{'$msg'})){
            $msg = $data->{'$msg'};
            $time = $data->{'$ts'};

            $sql="INSERT into error_log (sn, time, MSG) VALUES (?,?,?); ";
            $stmt = $con-> prepare($sql);
            $stmt -> bind_param("iss", $id,$time, $msg);
            $stmt -> execute();
        }else{
            $time = (isset($data->{'$ts'}))? $data->{'$ts'}:'';
            $RH = (isset($data->RH))? $data->RH:'';
            $AT = (isset($data->AT))? $data->AT:'';
            $MINVi = (isset($data->MINVi))? $data->MINVi:'';

            //insert into mysql table
            $sql="INSERT into test (sn, date, RH, AT, MINVi) VALUES (?,?,?,?,?); ";
            $stmt = $con-> prepare($sql);
            $stmt -> bind_param("issss", $id,$time,$RH,$AT,$MINVi);
            $stmt -> execute();
        }


    }
    mysqli_close($con);

?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL इकाई-विशेषता-मूल्य स्कीमा को कैसे पिवट करें

  2. XAMPP सेटअप - MySQL काम नहीं कर रहा है

  3. MySQL ट्यूटोरियल - अपने MySQL सर्वर पर एसएसएल को कॉन्फ़िगर और प्रबंधित करना

  4. सभी पंक्तियों के एक कॉलम का मान सेट करना बहुत धीमा है

  5. उपयोगकर्ताओं को डेटाबेस से केवल कुछ जानकारी की अनुमति दें