如果JSON文件中对象的值为空,则它采用先前的值

时间:2017-06-21 07:10:15

标签: php mysql json loops pdo

我使用来自JSON文件的PDP Prepared PDO语句在SQL数据库中插入值。

这就是我的代码:

$requestno = 8
$maxrequest = 15
while ($requestno < $maxrequest)
{
    $response = file_get_contents("https://api.themoviedb.org/3/movie/".$requestno."?api_key=456cec7xxxxxxxxxxxxxe0c834a");
    if ($response != FALSE) {
        $response = json_decode($response, true);
    }

   $requestno++;

   <?php

   try {

       // prepare sql and bind parameters
       $stmt = $conn->prepare("INSERT INTO TABLE (firstname) 
                               VALUES (:firstname)");
       $stmt->bindParam(':firstname', $firstname);

       // insert a row
       if ( $response["firstname"] != ""        )
       $tagline = $response["firstname"];
       $stmt->execute();

       echo "New records created successfully";
    }
    catch(PDOException $e)
    {
       echo "Error: " . $e->getMessage();
    }
   $conn = null;
}
?>

正如您所看到的,JSON文件的URL包含&#34;。$ requestno。&#34;,所以我从多个JSON文件中检索数据。

所以这里发生了什么,如果jSON文件中的firstname为空,MYSQL会插入以前的JSON文件firstname。如何解决?

如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

你需要在每个循环开始时重置变量$ firstname,如JonStirling在下面的评论中提到的那样,

while ($requestno < $maxrequest)
{
  $firstname = '';
  //your remaining code here
}

问题:由于您没有重置您的值,它会在前一次迭代中获取分配给它的值