我想从我的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);
?>