【问题标题】:MySQL to JSON in PHPPHP 中的 MySQL 到 JSON
【发布时间】:2013-12-25 01:53:52
【问题描述】:

我有一个基本的 MySQL 数据库表 People 有 3 列 (ID, Name, Distance)

我正在尝试使用 PHP 将其输出为 JSON,以便我的 Web 应用程序可以获取它。我尝试使用另一个答案的解决方案:

$sth = mysql_query($con,"SELECT * FROM People");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $rows[] = $r;
}
print json_encode($rows);

但是我只是返回一个[] 的空白数组。

更新:更改为 mysqli 并添加了转储:

$sth = mysqli_query("SELECT * FROM Events",$con);
$rows = array();
var_dump($sth);
while($r = mysqli_fetch_assoc($sth)) {
var_dump($rows); 
$rows[] = $r;
}
print json_encode($rows);

返回:

NULL []

【问题讨论】:

标签: php mysql json


【解决方案1】:

在 mysql_query-statement 中交换您的查询和连接:

$sth = mysql_query("SELECT * FROM People", $con);

除此之外,不推荐使用 mysql 库。如果您正在编写新代码,请考虑使用 mysqli_ 或 PDO。

【讨论】:

  • 视情况而定,如果您有多个连接(我猜他没有),您应该提供它
  • 不,mysql_query 只会使用最后一个连接。无论如何,OP 应该停止使用 mysql_* 函数。
【解决方案2】:

为什么没有mysql_connect?

var_dump($sth);   // check the return of mysql_query()
var_dump($rows);  // check the array of mysql_fetch_assoc result 

【讨论】:

    【解决方案3】:

    我会先检查您的查询是否返回任何行。

    <?php
    $rows = array();
    
    array_push($rows, array("name" => "John"));
    array_push($rows, array("name" => "Jack"));
    array_push($rows, array("name" => "Peter"));
    
    print  json_encode($rows);
    ?>
    

    产生这个输出。

    [{"name":"John"},{"name":"Jack"},{"name":"Peter"}]
    

    【讨论】:

      【解决方案4】:

      使用组合答案得到解决:

      $sth = mysqli_query($con,"SELECT * FROM Events");
      $datarray = array();
      while($row = mysqli_fetch_assoc($sth)) {
      $datarray[] = $row;
      }
      print_r(json_encode($datarray));
      

      【讨论】:

        猜你喜欢
        • 2015-03-11
        • 2014-06-05
        • 1970-01-01
        • 1970-01-01
        • 2013-12-08
        • 1970-01-01
        • 2013-06-23
        • 1970-01-01
        • 2012-10-01
        相关资源
        最近更新 更多