gpt4 book ai didi

php - 我可以从 JSON 动态创建 mySQL 表吗?

转载 作者:行者123 更新时间:2023-11-29 01:32:10 36 4
gpt4 key购买 nike

假设我有一个服务器端脚本,它通过对表的简单选择生成 JSON。 JSON 在第一个脚本中编码。

我无法控制第一个脚本,但我知道底层数据库结构何时发生变化以及 JSON 结构何时发生变化。

脚本 2 使用 CURL 获取包含 JSON 的 .js 文件(内容),然后我可以将其解码为数组。

然后我需要做的是将数据存储在另一个数据库中。

我的问题基本上是关于自动化这个过程,以及当你在数组到达之前不知道数组的结构时能够从数组创建一个表。

可以吗?

编辑 添加了当前的 JSON,但关键是它可能会改变。

{"name": "Google",
"homepage_url": "http://www.google.com",
"blog_url": "",
"blog_feed_url": "",
"twitter_username": "",
"category_code": "ecommerce",
"tag_list": "retail-portal-online-shopping-markets",
"alias_list": null,
"image": null,
"products":
[],
"relationships":
[],
"competitions":
[],
"providerships":
[{"title": "Legal",
"is_past": false,
"provider":
{"name": "TaylorWessing",
"permalink": "taylorwessing"}}],
"offices":
[{"description": "European HQ",
"address1": "",
"address2": "",
"zip_code": "",
"city": "Brussels",
"state_code": null,
"country_code": "BEL",
"latitude": null,
"longitude": null}]}

最佳答案

用于创建 mysql 表并从任何 JSON 变量插入值的简单代码片段。这是一个快速的 hack.. 检查字段类型等 :) 可能有更好的方法,但是这个方法有效并且已经为我节省了手动字段命名的时间

这也可以修改为创建一个处理对象的关系表。现在,它是为数组形式的 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;
}
?>

关于php - 我可以从 JSON 动态创建 mySQL 表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8616230/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com