我想要这种JSON数组, database1所有表
{
{"table1":"[{"key11":"val11"},{"key12":"val12"},{"key13":"val13"}]"},
{"table2":"[{"key21":"val21"},{"key22":"val22"},{"key23":"val23"}]"},
{"table3":"[{"key31":"val31"},{"key32":"val32"},{"key33":"val33"}]"},
{"table4":"[{"key41":"val41"},{"key42":"val42"},{"key43":"val43"}]"},
{"table5":"[{"key51":"val51"},{"key52":"val52"},{"key53":"val53"}]"},
}
这个波纹管代码将单个数据库表转换为JSON数组,但我想将整个数据库表转换为JSON数组
$return_arr = array();
$fetch = mysql_query("SELECT * FROM table1");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['val2'] = $row['val1'];
$row_array['val2'] = $row['val2'];
$row_array['val3'] = $row['val3'];
array_push($return_arr,$row_array);
}
echo json_encode($return_arr);
任何人都会帮助我。
答案 0 :(得分:0)
遍历所有表,您可以使用该查询来获取所有表。
select * from information_schema.tables
您仍然需要在表格中选择所有结果。
答案 1 :(得分:0)
类似的东西:
$db='recipes';
$tables=$db->query('SHOW TABLES IN '.$db, O_ARRAY);
foreach($tables as $n=>$v){
$table=$v['Tables_in_'.$db];
$array=$db->query("SELECT * FROM $table");
$data[$table]=$array;
}
echo '<pre>';
echo json_encode($data);
这对大数据来说会非常耗费内存!您可以为不需要的字段添加一些过滤器,或者需要跳过的数据库特定字段或将值转换到另一个地方。
答案 2 :(得分:0)
这是上述问题更改数据库名称的答案,只有所有表和表记录都以JSON数组格式给出。
mysql_connect('localhost','root','');
mysql_select_db('database');
$db='database';
$return_arr = array();
$return_arr1 = array();
$return_arr2 = array();
$return_arr3 = array();
$result = mysql_query("SHOW TABLES IN ".$db);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
array_push($return_arr,$row);
}
foreach($return_arr as $key => $value)
{
$table=$value['Tables_in_'.$db];
$array1=mysql_query("SELECT * FROM $table");
while ($row1 = mysql_fetch_array($array1, MYSQL_ASSOC))
{
array_push($return_arr3,$row1);
}
$return_arr1[$table]=$return_arr3;
unset($return_arr3);
$return_arr3 =array();
}
echo '<pre>';
print_r($return_arr1);