1

我正在尝试将我的 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_ 开头的表格

任何帮助是极大的赞赏:-)

4

1 回答 1

2

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);
于 2013-01-08T01:41:06.140 回答