gpt4 book ai didi

php - 来自 mySQL 数据库的数据以 JSON 形式传递

转载 作者:行者123 更新时间:2023-11-29 19:04:48 25 4
gpt4 key购买 nike

我想使用 JSON 从数据库输出整个数据

不幸的是,我在索引页上遇到错误,说:尝试获取非对象的属性..我已经编辑了我的代码,但仍然出现错误“语法错误,意外的'$name'”。

 <?php
include_once"model/api.php";

$text = view_rentalsJSON();
$adverts = json_decode($text) ;

for ($i=0; $i < sizeof($adverts); $i++){
$staff = $adverts[$i]

$name = $staff->name ;
echo "Name ".$name."<br/>" ;
}
?

这就是我的 API 函数的样子:

function view_rentalsJSON()
{
include("controller/connection.php");
$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * from adverts ";
$result = $conn->query($sql);

$array = array();
while($row = $result->fetch_assoc()){
$array[] = $row;
}

$json = json_encode($array);

// close connection
$conn -> close() ;

// return the resultant query
return $json ;
}

预先感谢您的帮助。

最佳答案

您的代码存在一些问题,例如:

  • 您没有以正确的方式创建 JSON 字符串。创建一个空数组$array在开头,并附加 $row数组为此 $arraywhile 的每次迭代中环形。退出循环后,使用 json_encode() 对结果数组进行编码的函数 $array并归还它。
  • 您的连接处理程序 $conn在您的功能范围内不可用。要么使用global或显式地将连接处理程序传递给 view_rentalsJSON()功能。
  • 您需要在 return 之前关闭连接陈述。

所以你的view_rentalsJSON()函数应该是这样的:

function view_rentalsJSON($conn){
$sql = "SELECT * from adverts";
$result = $conn->query($sql);

$array = array();
while($row = $result->fetch_assoc()){
$array[] = $row;
}
$json = json_encode($array);
$conn->close();

return $json;
}

随后,假设$conn是您的连接处理程序,您需要按以下方式更改索引页代码,

<?php
include_once"model/api.php";
$text = view_rentalsJSON($conn);
$stafflist = json_decode($text);
for ($i=0; $i < sizeof($stafflist); $i++){
$staff = $stafflist[$i] ;

$name = $staff->name ;
echo "Name ".$name."<br/>" ;

//$room = $staff -> room ;
//echo "Room ".$room."<br/>" ;

//$telephone = $staff -> telephone ;
//echo "telephone ".$telephone."<br/>" ;
//echo "<br/>" ;
}
?>

关于php - 来自 mySQL 数据库的数据以 JSON 形式传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43594015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com