Вставка массива JSON в базу данных MySQL не выполняется правильно - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь вставить некоторые данные из файла 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);

?>

1 Ответ

0 голосов
/ 24 октября 2018

Проблема в том, что вы выполняете запрос только после завершения цикла, вам нужно запускать его в каждой строке ...

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;
       }
}

Хотя теперь вы получите сообщение для каждой вставленной строки.

Вам также следует использовать подготовленные заявления , которые защитят вас от всевозможных потенциальных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...