Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将JSON结果放入[]_Php_Json - Fatal编程技术网

Php 将JSON结果放入[]

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

我试图将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 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);