为什么没有解析JSon对象名称?

时间:2014-10-15 16:25:40

标签: php mysql sql json database

所以我试图将我的sql数据库生成为json但是表名似乎没有生成..怎么来的?我需要更改什么才能生成表名?

<?php
    //Create Database connection
    $db = mysql_connect("***","***","***");
    if (!$db) {
        die('Could not connect to db: ' . mysql_error());
    }

    //Select the Database
    mysql_select_db("***",$db);

    //Replace * in the query with the column names.
    $result = mysql_query("SELECT * FROM table", $db);  

    //Create an array
    $json_response = array();   

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $row_array['id'] = $row['id'];
        $row_array['first_name'] = $row['first_name'];
        $row_array['last_name'] = $row['last_name'];
        $row_array['email'] = $row['email'];
        $row_array['country'] = $row['country'];
        $row_array['ip_address'] = $row['ip_address'];

        //push the values in the array
        array_push($json_response,$row_array);
    }
    echo json_encode($json_response);

    //Close the database connection
    fclose($db);

?>

已经看了几个小时,只是不知道什么是错的......

我希望你们能帮助我!

2 个答案:

答案 0 :(得分:0)

因为数据库没有返回表名!

如果要返回它,请将$json_response对象包装到另一个数组中。例如。

echo json_encode(array('table_name' => $json_response))

如上所述,您正在使用不安全已弃用的mysql_ *函数。请切换到MySQLi或PDO以及准备好的语句。

答案 1 :(得分:0)

您循环查看数据库查询的结果,除非您手动将其添加到响应中,否则它不会包含表名...

$json_response = array('table' => 'table name here', 'results' => array());

和..

array_push($json_response['results'],$row_array);