繁体   English   中英

将JSON数组插入MySQL数据库无法正确循环

[英]Inserting a JSON Array into MySQL Database not looping correctly

我正在尝试将JSON文件中的一些数据插入SQL数据库。

我已经编写了此脚本来读取JSON,对其进行解码并将其插入,但是我只得到第一条JSON行,因为我认为循环不正确。

我也收到一个重复的错误,我认为这是由于代码试图循环同一行而不是JSON中的下一行而引起的! (仅插入第一个JSON项目)

如何获取脚本以循环JSON中的每一行并将其插入?

谢谢!

我正在使用的代码:

<?php
error_reporting(E_ALL);
$root = $_SERVER['DOCUMENT_ROOT'];
require ($root."/config.php");

$json = file_get_contents('propertiesA.json');
$obj = json_decode($json,true);

foreach($obj as $item) {
    $query =  "INSERT INTO unverified_list (
         title,
         street_address,
         locality
       ) VALUES (
         '".$item['title']."',
         '".$item['street_address']."',
         '".$item['locality']."'

       )"; 
}

$result = $link->query($query);

if ($link->query($query) === TRUE) {
    echo "Property Added";
} else  {
  echo "Error: " . $query . "<br>" . $link->error;
}

mysqli_close($link);

?>

问题是您仅在循环完成后才执行查询,您需要在每一行上运行它...

foreach($obj as $item) {
       $query =  "INSERT INTO unverified_list (
         title,
         street_address,
         locality
       ) VALUES (
         '".$item['title']."',
         '".$item['street_address']."',
         '".$item['locality']."'

       )"; // Remove } from here to after next bit of code

       $result = $link->query($query);

       if ($link->query($query) === TRUE) {
           echo "Property Added";
       } else  {
           echo "Error: " . $query . "<br>" . $link->error;
       }
}

尽管这现在会为您插入的每一行显示一条消息。

您还应该研究使用准备好的语句 ,该语句将保护您免受各种潜在问题的困扰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM