javascript - D3 javascript从mysql中提取数据未捕获类型错误

标签 javascript php mysql json d3.js

我目前正在使用此 php 从 mysql 数据库获取数据:

<?php
    $username = "*****"; 
    $password = "******";   
    $host = "localhost";
    $database="db";

    $server = mysql_connect($host, $username, $password);
    $connection = mysql_select_db($database, $server);

    $myquery = "
SELECT  `this`, `that` FROM  `table`
";
    $query = mysql_query($myquery);

    if ( ! $query ) {
        echo mysql_error();
        die;
    }

    $data = array();

    for ($x = 0; $x < mysql_num_rows($query); $x++) {
        $data[] = mysql_fetch_assoc($query);
    }

    $fp = fopen('empdata.json', 'w');
    fwrite($fp, json_encode($data));
    fclose($fp);    

    mysql_close($server);
?>

然后我使用之前生成的 json 文件运行此 html

d3.json("mypreviouslygeneratedjson.json", function (error, data) {

    data.forEach(function (d) 
    {
        ...
    }
...

一切顺利,我可以生成条形图、饼图等。但是一旦我用此行替换 3 个 fopen、fwrite 和 fclose 行:

echo json_encode($data);

(加上我用我之前提到的 php 文件替换“mypreviously generatedjson.json”)

当我尝试执行此操作时,控制台中出现错误:

Uncaught TypeError: Cannot read property 'forEach' of undefined

这是怎么回事?我实际上在这两种情况下都使用相同的 json。

最佳答案

问题是我的 php 文件生成的 json 中包含以下 mysql 警告:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

这导致我的 json 文件被 html 填充,导致 d3.json 无法读取它

关于javascript - D3 javascript从mysql中提取数据未捕获类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36317795/

相关文章:

javascript - 在 Facebook 图表发布功能中包括换行符和项目符号点

php - 如何在 PHP 中立即执行匿名函数?

php - 在 HTML 表中显示带有可变数据的 MySQL 查询结果

mysql - SQL:仅返回没有任何符合条件的关联的记录

javascript - 为什么跟踪代码管理器未检测到我的数据层?

php - 单击打印按钮时,HTML 圆形符号丢失

javascript - 基本 "Get Variable Value"使用 GopherJS

PHP Mysql GET 上个月和当月数据

javascript - Vue 多选不允许创建新标签

javascript - 为什么我的消息没有发送到带有此处理程序的 Socket.io 房间?