errore SQLstate 23000 я не могу сохранить некоторые значения JSON в моей базе данных - PullRequest
0 голосов
/ 14 июля 2020

Мне нужно сохранить некоторые значения JSON в моей базе данных SQL.

База данных - Таблица "противостояния" enter image description here


This is my PHP code

require_once("database.php");
$apiURL = 'https://nico.planethoster.world/api-foot/confrontations/lire.php?annee=2020&semaine=29';
$response = file_get_contents($apiURL);
$jsonResponse = json_decode($response, true);
$items = $jsonResponse['match'];



    foreach ($items as $item ) {
        
        $query = "INSERT INTO `confrontations`(`id_match`, `id_equipe1`, `id_equipe2`, `cote1`, `coteN`, `cote2`, `date`, `heure`, `semaine`) 
        VALUES (:id_match, :id_equipe1, :id_equipe2, :cote1, :coteN, :cote2, :date, :heure, :semaine) ";
        $check = $pdo->prepare($query);
        $date = $item["date"];
        $heure = $item["heure"];
        $check->bindParam(':id_match', $item["id_match"], PDO::PARAM_INT);
        $check->bindParam(':id_equipe1', $item["id_equipe1"], PDO::PARAM_INT);
        $check->bindParam(':id_equipe2', $item["id_equipe2"], PDO::PARAM_INT);
        $check->bindParam(':cote1', $item["cote1"], PDO::PARAM_STR);
        $check->bindParam(':coteN', $item["coteN"], PDO::PARAM_STR);
        $check->bindParam(':cote2', $item["cote2"], PDO::PARAM_STR);
        $check->bindValue(':date', $date,  PDO::PARAM_STR);
        $check->bindValue(':heure', $heure, PDO::PARAM_STR);
        $check->bindParam(':semaine', $item["semaine"], PDO::PARAM_INT);

        $check->execute();

and that s my error введите описание изображения здесь

1 Ответ

0 голосов
/ 14 июля 2020

Вы пытаетесь сохранить строку, в которой уже существует первичный ключ (id_match). Таким образом, несколько конфронтаций используют один и тот же id_match.

Возможно, вы уже запускали этот код один раз. Если вы запустите его во второй раз, вам придется реализовать некоторую процедуру обновления вместо вставки. Например, UPDATE confrontations SET x = y WHERE id_match = z;

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