PHP - 将 MySQL 表导出到 JSON 文件

标签 php mysql json export

我正在尝试将我的 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/

相关文章:

javascript - 为多个元素的数据属性添加更改监听器

php - 将表单数据保存在 BUTTON 上,单击数据库 + php mysql

MySQL优先级

mysql - 将一个数据库中的值转移到另一个数据库中

java - 我想将具有下面给出的结构的 JSON 反序列化为给定的 Java 类

php - 将 SQL 表反序列化为对象集合

php - 从 Zend 和 PHP 配置对 MySQL 的数据库访问时遇到问题

mysql - 转置 MySQL 查询的结果

javascript - 从 json 对象而不是 json 加载 Tensorflowjs

javascript - Backbone.js 获取无法正常工作