使用 PHP 从 MySQL 数据创建 JSON 数组


make json array from mysql data using php

我想从我的mysql数据库中获取一些数据,并将其传递给json数组,以便我可以在我的Android应用程序中使用它。

但是到目前为止,我无法从 mysql db 获取任何数据,当我在浏览器中运行我的 php 代码以检查输出时,我得到一个空白屏幕。有人可以帮忙吗?

法典:

<?php 
$connection = mysqli_connect("localhost","testUser","root","EasyFridge") or die("error". mysqli_error($connection));
$sql = "select * from product";
$result = mysqli_query($connection, $sql); 
$emparray = array();
while($row = mysqli_fetch_assoc($result)){
    $emparray[] = array("product" => $row);
}
echo json_encode($emparray);
mysqli_close($connection);
?>

我建议你看看PHP的错误日志。脚本很可能超出了可用的最大内存。如果是这样,您可以尝试以下操作:

  • 通过设置memory_limit参数或调用代码ini_set('memory_limit', '2048M');来增加 php.ini 文件中的最大内存;
  • 将数据分解为具有更合适的返回对象计数的页面。

更新:

发现错误,缺少字符集解码语句,所以只是添加:

<?php
    //open connection to mysql db
    $connection = mysqli_connect("localhost","testUser","root", "EasyFridge") or die("Error " . mysqli_error($connection));
    //fetch table rows from mysql db
    $sql = "SELECT * FROM product";
    mysqli_set_charset($connection, "utf8"); //ADDED THIS LINE!! 
    $result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));
    error_reporting(E_ALL);
    $returnarray = array();
    //create an array
          while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
                {
                //$emparray[] = $row[];
                $emparray['id'] = $row['id'];
                $emparray['name'] = $row['name'];
                $emparray['placement_date'] = $row['placement_date'];
                $emparray['removal_date'] = $row['removal_date'];
                $emparray['type'] = $row['type'];
                array_push($returnarray, $emparray);
                }
                //var_dump($returnarray);
                echo json_encode($returnarray);
    //close the db connection
    mysqli_close($connection);
?>