我使用来自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。如何解决?
如果您需要更多信息,请告诉我。
答案 0 :(得分:0)
你需要在每个循环开始时重置变量$ firstname,如JonStirling在下面的评论中提到的那样,
while ($requestno < $maxrequest)
{
$firstname = '';
//your remaining code here
}
问题:由于您没有重置您的值,它会在前一次迭代中获取分配给它的值