คอมพิวเตอร์และอินเตอร์เน็ต,บรรยายวิชาการ,วิจัย,ศึกษากุรอาน,E-Book

วันจันทร์ที่ 3 พฤษภาคม พ.ศ. 2564

Mysql Export to JSON สำหรับนำเข้าใน MongDB


การ Export ตารางจาก Mysql เป็น JSON สำหรับนำเข้าใน MongDB

ดังนี้ 

<?php

    date_default_timezone_set('Asia/Bangkok');

    $today=date("Y-m-d_His");

    include('../../db_inc.php');

    ini_set('display_errors',0); //ปิดแสดง notice

    ini_set('memory_limit', '-1'); //ปิดจำกัด memory

    ini_set('max_execution_time', '-1'); //ปิดจำกัดเวลาประมวล

    set_time_limit(0);

    ?>

    <h3><?= str_repeat('&nbsp;', 20);?>The Adi JSON Data Coversion (version 04-05-2564)</h3>

    <br>

    <?  

    $sql_tbl = "SHOW TABLES FROM $dbname"; //SHOW Table

    $result_tbl = mysql_query($sql_tbl);

    ?>

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

        Choose table name 

        <select name="mytable" >   

            <option value="" selected>&nbsp;</option>

    <?

    while ($row_tbl = mysql_fetch_row($result_tbl)) {

        echo "<option value='".$row_tbl[0]."'>".$row_tbl[0]."</option>";

    }

    ?>

        </select>

        <?= str_repeat('&nbsp;', 3);?>

        <input type="checkbox" name="showonscreen" value="showonscreen">

        Show on screen <?= str_repeat('&nbsp;', 3);?>

        <input type="checkbox" name="createjsonfile" value="createjsonfile">

        Create file <?= str_repeat('&nbsp;', 3);?>

        <input type="submit" name="submit" value="Submit Form">

    </form>

    <?

    mysql_free_result($result_tbl);

    ////////////////////END FORM//////////////////////////

    if(isset($_POST['submit'])) 

    { 

        //echo "Start data on screen listing...<br><br>";

        $mytable = $_POST['mytable'];

        $myshow = $_POST['showonscreen'];

        $mycreate = $_POST['createjsonfile'];

        //echo $myshow; die;

        $sql = "SELECT * FROM ".$mytable;  //fetch table rows from mysql db

        $result = mysql_query($sql);

        $num_rows = mysql_num_rows($result);

        $emparray = array(); //create an array

        while($row =mysql_fetch_assoc($result))

        {

            $emparray[] = $row;

        }

        if($myshow=='showonscreen'){ //display on screen when checked

            echo "<br>Start data on screen listing...".$num_rows." records<br><br>";

            echo json_encode($emparray, JSON_UNESCAPED_UNICODE); // มี JSON_UNESCAPED_UNICODE เพื่อภาษาไทย

            echo "<br><br>End of listing...<br>";

        }

        mysql_free_result($result);

        mysql_close($conn);

    }

    ////////////////END FORM SUBMIT////////////////////

    if($mycreate=='createjsonfile'){ //create json file when checked //write to json file

        $jpath = 'json_exported/';  //create this folder first by manual

        $jfile = $jpath.$mytable."_".$today.".json";

        $fp = fopen($jfile, 'w');

        fwrite($fp, json_encode($emparray, JSON_UNESCAPED_UNICODE)); // มี JSON_UNESCAPED_UNICODE เพื่อภาษาไทย

        fclose($fp);

        echo "<br>";

        echo "<br>";

        echo "<div style='position:absolute;left:10px;top:100px;width:500px;height:20px;'>";

        echo "<a href='".$jfile."'>Download JSON file by Right Click</a>";

        echo "</div>";

    }

?>

หมายเหตุ : ทดสอบแล้วโดยนำไฟล์ที่ได้แล้วน้ำเข้าด้วย MongoDB Compass

                    ใช้ไฟล์ขนาด 400000+ record เร็วมาก ใช้เวลาเพียง 25 วินาทีเท่านั้น...

ไม่มีความคิดเห็น: