sql >> データベース >  >> RDS >> Mysql

JSONからmySQLテーブルを動的に作成できますか?

    mysqlテーブルを作成し、任意のJSON変数から値を挿入するための単純なコードピース。これは高速なハックです。フィールドタイプなどを確認してください:)おそらくもっと良い方法がありますが、これはうまくいき、手動のフィールド命名ですでに時間を節約できました

    これを変更して、オブジェクトを処理するリレーションテーブルも作成できます。今では、オブジェクトではなく、配列で形成されたJSONのもの、つまり配列内の配列用に作成されています。

    <?php
    
        JSON_to_table($place_your_JSON_var_here_please);
    
                function JSON_to_table($j_obj, $tblName = "New_JSON_table_" . time()){
                $j_obj = json_decode($your_JSON_variable, true);
                if(!mysql_num_rows( mysql_query("SHOW TABLES LIKE '" . $tblName . "'"))){ 
                    $cq = "CREATE TABLE ". $tblName ." (
                    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,";
                    foreach($j_obj as $j_arr_key => $value){
                        $cq .= $j_arr_key . " VARCHAR(256),";
                    }
                    $cq = substr_replace($cq,"",-1);
                    $cq .= ")";
                    mysql_query($cq) or die(mysql_error());
                }
    
                $qi = "INSERT INTO $tblName (";
                reset($j_obj);
                    foreach($j_obj as $j_arr_key => $value){
                        $qi .= $j_arr_key . ",";
                    }
                    $qi = substr_replace($qi,"",-1);
                $qi .= ") VALUES (";
                reset($j_obj);
                    foreach($j_obj as $j_arr_key => $value){
                        $qi .= "'" . mysql_real_escape_string($value) . "',";
                    }
                $qi = substr_replace($qi,"",-1);
                $qi .= ")";
                $result = mysql_query($qi) or die(mysql_error());
    
            return true;
                }
    ?>
    


    1. Oracleの異なるCURRENT_TIMESTAMPとSYSDATE

    2. postgresqlへのdictオブジェクトの追加

    3. WEEKDAY()の例– MySQL

    4. SQLServer監視ツールで探すべき主な機能