Php 将JSON结果放入[]
我试图将JSON API中的值添加到MySQL中。问题是结果返回时没有[],因此我无法foreach它并将所有值插入数据库 这是API URL 这是我的密码Php 将JSON结果放入[],php,json,Php,Json,我试图将JSON API中的值添加到MySQL中。问题是结果返回时没有[],因此我无法foreach它并将所有值插入数据库 这是API URL 这是我的密码 $data = file_get_contents( "https://horoscope-api.herokuapp.com/horoscope/today/Gemini", true); $array = json_decode($data, true); //Convert JSON String into PHP Arr
$data = file_get_contents(
"https://horoscope-api.herokuapp.com/horoscope/today/Gemini",
true);
$array = json_decode($data, true); //Convert JSON String into PHP Array
foreach($array as $row) //Extract the Array Values by using Foreach Loop
{
$query .= "INSERT INTO zodiac(date, horoscope, sunsign, url)
VALUES (
'" . $row["date"]. "',
'" . $row["horoscope"]."',
'" . $row["sunsign"]."',
'" . $row["sunsign"]."'
); "; // Make Multiple Insert Query
}
如果我合并$data=[$data];带引号和不带引号都可以正确打印,但不能作为数组进行分析。或者至少我知道怎么做。
我试着寻找一些方法来解决这个问题,并在这里找到了一些有趣的想法,但它们似乎都不起作用
还有其他方法可以在[]内得到结果吗
谢谢如果我没有误解您的要求,那么这应该适合您。我已经看到了API的响应,它只是返回一个星座的单一结果。虽然我刚刚使用了您现有的代码使其可行,但不建议使用,我希望您可以尝试使用
他们只为一个目标服务。不是一个对象数组。我不明白这个问题。看到没?问题是他们没有给我钉子,所以我不能用锤子。为什么你认为你需要使用循环来实现这一点?@iainn,我想这是因为我不知道其他方法。@ficuscr,我需要它,以防我想要分割多个单个对象,如{},{},{},例如3天占星术。
<?php
$data = file_get_contents("https://horoscope-api.herokuapp.com/horoscope/today/Gemini",true);
$array[] = json_decode($data, true); //Convert JSON String into PHP Array
$query = '';
foreach($array as $key=>$row) //Extract the Array Values by using Foreach Loop
{
$query.= "INSERT INTO zodiac(date,horoscope,sunsign,url)
VALUES ('". $row["date"]."','".$row["horoscope"]."','".$row["sunsign"]."','".$row["sunsign"]."'); "; // Make Multiple Insert Query
}
echo $query;
?>
$data = file_get_contents("https://horoscope-api.herokuapp.com/horoscope/today/Gemini",true);
$array = json_decode($data, true); //Convert JSON String into PHP Array
$sql = "INSERT INTO zodiac (date, horoscope, sunsign) VALUES (:date, :horoscope, :sunsign)";
$stmt= $dpo->prepare($sql);
$stmt->execute($array);