我正在尝试将我的 MySQL 表从我的数据库导出到一个 JSON 文件,以便我可以将它们列在一个数组中。
我可以用这段代码创建文件没问题:
$sql=mysql_query("select * from food_breakfast");
while($row=mysql_fetch_assoc($sql))
{
$ID=$row['ID'];
$Consumption=$row['Consumption'];
$Subline=$row['Subline'];
$Price=$row['Price'];
$visible=$row['visible'];
$posts[] = array('ID'=> $ID, 'Consumption'=> $Consumption, 'Subline'=> $Subline, 'Price'=> $Price, 'visible'=> $visible);
}
$response['posts'] = $posts;
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($response));
fclose($fp);
现在它读取一个表并从其中的字段中提取信息。
我想知道是否可以使用表的名称制作一个 JSON 文件,以便在层次结构中更高一层。
我有部分代码:
$showtablequery = "
SHOW TABLES
FROM
[database]
LIKE
'%food_%'
";
$sql=mysql_query($showtablequery);
while($row=mysql_fetch_array($sql))
{
$tablename = $row[0];
$posts[] = array('tablename'=> $tablename);
}
$response['posts'] = $posts;
但现在我卡在最后一行说的是:$ID=$row['ID'];
这与表格中的信息有关,我不知道该放什么在这里。
另外如您所见,我需要过滤表格以仅列出以 food_ 和 drinks_ 开头的表格
非常感谢任何帮助:-)
最佳答案
MySQL 中没有“表 ID”,因此 SHOW TABLES
的结果集没有索引 id
。结果集中唯一的索引名为“Tables_in_DATABASENAME”。
您还应该使用 mysqli 库,因为旧的 mysql 库已被弃用。准备了一个例子:
<?php
$mysqli = new mysqli(
'yourserver',
'yourusername',
'yourpassword',
'yourdatabasename'
);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") "
. $mysqli->connect_error;
}
$result = $mysqli->query('SHOW TABLES FROM `yourdatabasename` LIKE \'%food_%\'');
if(!$result) {
die('Database error: ' . $mysqli->error);
}
$posts = array();
// use fetch_array instead of fetch_assoc as the column
while($row = $result->fetch_array()) {
$tablename = $row[0];
$posts []= array (
'tablename' => $tablename
);
}
var_dump($posts);
关于PHP - 将 MySQL 表导出到 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206839/