Javascript 从mySql数据库返回php格式的JSON

Javascript 从mySql数据库返回php格式的JSON,javascript,php,mysql,arrays,json,Javascript,Php,Mysql,Arrays,Json,我的数据库中有以下数据: 我希望日期采用JSON格式,如下所示: { "labels": ["12.11.2016", "13.11.2016", "14.11.2016", ...], "temperature": ["12", "35", "27", ...], "humidity": ["56", "70", "87", ...] } 我目前的代码是: $conn = new PDO("mysql:host=$servername;dbname=$dbname"

我的数据库中有以下数据:

我希望日期采用JSON格式,如下所示:

{
    "labels": ["12.11.2016", "13.11.2016", "14.11.2016", ...],
    "temperature": ["12", "35", "27", ...],
    "humidity": ["56", "70", "87", ...]
}
我目前的代码是:

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $conn->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);

        //Select the requested data
        $sql = "SELECT date, temperature, humidity FROM `TestData` ORDER BY date ASC ";

        $statement = $conn->prepare($sql);
        $statement->execute();
        $result = $statement->fetchAll(PDO::FETCH_ASSOC);

        //Values returned for JavaScript
        $labels = array();
        $temperature = array();
        $humidity = array();
        $data = array();

        foreach ($result as $row)
        {
            array_push($labels, $row['date'] );
            array_push($temperature, $row['temperature']);
            array_push($humidity, $row['humidity']);
        }
        $result = null;

        //Load data in one single array
        $data['labels'] = $labels;
        $data['temperature'] = $temperature;
        $data['humidity'] = $humidity;
        //echo $data;
        //echo json_encode($labels , JSON_FORCE_OBJECT);
        echo json_encode($data);
但这只给了我以下几点:


这里有人有主意吗?即使我已经在互联网上搜索了5个小时,我也无法让它工作://

获取的输出是一个键到值对。键是行号

此外,您的列名似乎是您发布的var转储文件中的大写字母

尝试以下操作以正确获取值:

foreach ($result as $key => $row)
{
    array_push($labels, $row['DATE'] );
    array_push($temperature, $row['TEMPERATURE']);
    array_push($humidity, $row['HUMIDITY']);
}

提取的输出是一个键到值对。键是行号

此外,您的列名似乎是您发布的var转储文件中的大写字母

尝试以下操作以正确获取值:

foreach ($result as $key => $row)
{
    array_push($labels, $row['DATE'] );
    array_push($temperature, $row['TEMPERATURE']);
    array_push($humidity, $row['HUMIDITY']);
}
尝试:

由于
$conn->setAttribute(PDO::ATTR_case,PDO::case_upper),看起来所有列名都是大写的

尝试:



由于
$conn->setAttribute(PDO::ATTR_case,PDO::case_upper),看起来所有列名都是大写的

$result的输出是什么<代码>变量转储($result)
输出是$result的输出吗<代码>变量转储($result)输出为Nope,仍然给我那些空值<代码>foreach($result as$key=>$row)或
foreach($result as$key)
在这种情况下并不重要。是的,我也意识到了这一点,大写字母的问题现在也是正确的答案。。。我无法检查其中的两个:(@FranzHuber23 Shawn是第一个:)不,仍然给我那些空值<代码>foreach($result as$key=>$row)或
foreach($result as$key)
在这种情况下并不重要。是的,我也意识到了这一点,大写字母的问题现在也是正确的答案。。。我无法检查其中的两个:(@FranzHuber23 Shawn是第一个:)哈哈,WTF。。。这对我很有效:D好的,谢谢你@Shawn。结果现在是正确的格式:)这背后到底是什么问题?你能给我解释一下吗。我不认为,我对我的专栏使用了大写的描述…:/实际上是这一行:
$conn->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER)啊,f*ck,是的。。。再也没想过这个了:/哈哈,WTF。。。这对我很有效:D好的,谢谢你@Shawn。结果现在是正确的格式:)这背后到底是什么问题?你能给我解释一下吗。我不认为,我对我的专栏使用了大写的描述…:/实际上是这一行:
$conn->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER)啊,f*ck,是的。。。我再也没想过这个了:/