Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi có thể tạo động một bảng mySQL từ JSON không?

Đoạn mã đơn giản để tạo bảng mysql và chèn giá trị từ bất kỳ biến JSON nào. Đây là một cách hack nhanh .. kiểm tra các loại trường, v.v. :) Có lẽ có nhiều cách tốt hơn, nhưng cách này hiệu quả và đã giúp tôi tiết kiệm hàng giờ trong việc đặt tên trường thủ công

Điều này có thể được sửa đổi để tạo ra một bảng quan hệ xử lý các đối tượng. Bây giờ, nó được tạo ra cho các thứ JSON được tạo thành mảng chứ không phải các đối tượng tức là các mảng trong mảng.

<?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. Làm cách nào để truy xuất mục tiếp theo trong danh sách các bản ghi MySQL?

  2. Bản chính vi phạm tính toàn vẹn của Mysql / PDO - mặc dù chưa có gì trong bảng

  3. Mã lỗi 1005, trạng thái SQL HY000:Không thể tạo bảng errno:150

  4. Tham số hóa tên tệp trong THÔNG TIN DỮ LIỆU TẢI MYSQL

  5. gọi một hàm thành viên thực thi () trên một đối tượng không phải