0

連想 PHP 配列 (テーブル) をデータベースに格納しようとしています。これは多くのフィールド (約 30 フィールド) を含む大きな配列であり、この配列の 6 つのフィールドを 6 つのフィールドを持つテーブルに格納したいだけです。良い。この配列の各行には、特定の記事の情報が含まれています。各記事が 1 回だけ (重複なしに) 保存されるようにしたいので、データを保存する前に、繰り返しクエリがないかデータベースをチェックする必要があります。これが正しく機能していない私のコードです。誰かがこれで私を助けてくれれば幸いです。

<?php $results = $PubMedAPI->query($term, false); ?>
<?php if (!empty($results)): ?>
<?php
    $con=mysqli_connect("localhost","root","","db");
    // Check connection
    if (mysqli_connect_errno())
    {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    foreach ($results as $result):

        $pmid = $result['pmid'];
        $title = $result['title'];
        $authors = $result['authors'];
        $journalabbrev = $result['journalabbrev'];
        $year = $result['year'];
        $abstract = $result['abstract'];
        $fetched_articles = mysqli_query($con,"SELECT pmid FROM articles");

        while( ($row = mysqli_fetch_array($fetched_articles))) {
            if ($row['pmid'] == $pmid) {
                echo "This record has already been stored into the database!";
            } else {
                mysqli_query($con,"INSERT INTO articles (pmid, title, authors, journalabbrev, year, abstract)
                VALUES ('$pmid', '$title', '$authors', '$journalabbrev', '$year', '$abstract')");
                echo "This record has been stored into the database!";
            }
        }
    endforeach;
    mysqli_close($con);
?>
<?php endif; ?>
4

1 に答える 1