gpt4 book ai didi

PHP - 无法访问数组值

转载 作者:行者123 更新时间:2023-11-29 20:07:37 24 4
gpt4 key购买 nike

我正在尝试使用 PHP 访问 MySQL 数据库,但遇到数据问题。在我的开发机器(PHP 版本 5.5)上,这段代码运行得很好,但在生产服务器(PHP 版本 5.6)上,代码在处理数组时似乎失败了。基本上,我似乎得到下面的代码来 echo 表明 $parks 确实是一个数组,并添加

foreach ($parks as $key => $val) {
echo $key;
};

将正确回显数组键,但如果我将 echo $key 替换为 echo $val,则什么也不会发生,根本没有回显。

<?php
$dbname = "DATABASE";
$password = "PASSWORD";
$servername = "localhost";
$dbname = "NAME";

$conn = new mysqli($servername, $username, $password, $dbname);

$query = "SELECT name, latitude, longitude, description, where_to_go from locations";
$result = mysqli_query($conn, $query);

$parks = [];

while($row = mysqli_fetch_array($result)){
$park = new stdClass();
$location = new stdClass();
$location->lat = floatval($row['latitude']);
$location->lng = floatval($row['longitude']);
$park->title = $row['name'];
$park->location = $location;
$park->description = $row['description'];
$park->whereToGo = $row['where_to_go'];
array_push($parks, json_encode($park));
};
/*
foreach ($parks as $key => $val) {
echo $key; //THIS WILL WORK
};

foreach ($parks as $key => $val) {
echo $val; //THIS WILL NOT RETURN ANYTHING
};

echo $parks[0] //SIMILARLY, THIS WILL NOT RETURN ANYTHING
*/

$conn->close();
?>

为了进一步说明这一点,我的程序的下一步是将 $parks 数组放入 JavaScript 变量中...

<script type="text/javascript">
var locations = <?php echo json_encode($parks); ?>;
var locations = locations.map(JSON.parse);
console.log(locations);
</script>

运行所有这些都会记录[false]

为了测试,我在 PHP 的 while 循环中针对 $park 的不同属性添加了一些 echo ,它们输出正确的值...所以数组似乎构建正确,但我似乎无法从中得到任何东西。

非常感谢任何指导。

最佳答案

请尝试一下:

while($row = mysqli_fetch_array($result)){                   
$park = new stdClass();
$location = new stdClass();
$location->lat = floatval($row['latitude']);
$location->lng = floatval($row['longitude']);
$park->title = $row['name'];
$park->location = $location;
$park->description = $row['description'];
$park->whereToGo = $row['where_to_go'];
$parks[] = json_encode(get_object_vars($park));
};

或者只使用数组:

while($row = mysqli_fetch_array($result)){                   
$park = [];
$location = [];
$location['lat'] = floatval($row['latitude']);
$location['lng'] = floatval($row['longitude']);
$park['title'] = $row['name'];
$park['location'] = $location;
$park['description'] = $row['description'];
$park['whereToGo'] = $row['where_to_go'];
$parks[] = json_encode($park);
};

关于PHP - 无法访问数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290125/

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