Apache2 旧的xamp服务器是否不允许json或创建任何问题

Apache2 旧的xamp服务器是否不允许json或创建任何问题,apache2,php,amazon-ec2,xampp,json,Apache2,Php,Amazon Ec2,Xampp,Json,我使用最新的xamp在localhost上运行我的页面,它从表中获取数据并创建json字符串。用于谷歌图表创建。 在localhost上,它工作得很好 同样的代码,我放在LinuxEC2实例上的数据库。它接受了错误的json字符串,并且没有给出结果 是因为xamp版本的不同吗 Localhost有php5.4.16和ec2服务器php5.3.8 代码是: <?php $mysqli =mysqli_connect('127.0.0.1:3306', 'root', 'root', 'tes

我使用最新的xamp在localhost上运行我的页面,它从表中获取数据并创建json字符串。用于谷歌图表创建。 在localhost上,它工作得很好

同样的代码,我放在LinuxEC2实例上的数据库。它接受了错误的json字符串,并且没有给出结果

是因为xamp版本的不同吗

Localhost有
php5.4.16
和ec2服务器
php5.3.8

代码是:

<?php
$mysqli =mysqli_connect('127.0.0.1:3306', 'root', 'root', 'test');
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
  $result = $mysqli->query('SELECT * FROM view_name');

  $rows = array();
  $table = array();
  $table['cols'] = array(
    array('label' => 'pcount', 'type' => 'string'),
    array('label' => 'ncount', 'type' => 'number')
);
    /* Extract the information from $result */
    foreach($result as $r) {
      $temp = array();
      $temp[] = array('v' => (string) $r['ind_type']); 
      $temp[] = array('v' => (int) $r['Index_val']); 
      $rows[] = array('c' => $temp);
    }

$table['rows'] = $rows;

// convert data into JSON format
//$jsonTable = json_encode($table);

$jsonTable = json_encode($table);

echo $jsonTable;
?>
在ec2实例上运行时的json字符串:

{"cols":[{"label":"pcount","type":"string"},{"label":"ncount","type":"number"}],"rows":[{"c":[{"v":""},{"v":0}]},{"c":[{"v":""},{"v":0}]},{"c":[{"v":""},{"v":0}]},{"c":[{"v":""},{"v":0}]},{"c":[{"v":""},{"v":0}]}]}
表格如下:

+----------+-----------+
| ind_type | Index_val |
+----------+-----------+
| pcount   |       179 |
| ncount   |       237 |          which is same on localhost and ec2 instance.
+----------+-----------+

我可能是错的,因为我使用pdo而不是mysqli,但您不应该执行
$result->fetch_assoc()
来获取关联数组,如这里所述:


顺便说一下,我认为你混合了面向对象风格和过程风格。请参见php.net上的示例1和示例2。

我可能错了,因为我使用pdo而不是mysqli,但您不应该执行
$result->fetch_assoc()
来获得如下所述的关联数组:


顺便说一下,我认为你混合了面向对象风格和过程风格。请参见php.net上的示例1和示例2。

也许你应该做一个
print\r($result)
并将其发布到这里,看看您的结果是否真的符合您的预期。也许您应该执行
打印($result)
并将其发布到此处,以查看您的结果是否真的符合预期。
+----------+-----------+
| ind_type | Index_val |
+----------+-----------+
| pcount   |       179 |
| ncount   |       237 |          which is same on localhost and ec2 instance.
+----------+-----------+
if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->free();
}