Mysql
 sql >> база данни >  >> RDS >> Mysql

Мога ли динамично да създам mySQL таблица от JSON?

Прост код за създаване на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично зареждане на резултатите, извличащи едни и същи резултати отново и отново

  2. SQL филтриране по множество колони

  3. Как да извикате съхранени процедури с EntityFramework?

  4. Където клаузата работи, не работи на tinyint

  5. Колона В зависимост от друга колона