插入大数据的正确方法,最后需要插入ID,多对多关系

时间:2016-07-21 22:46:54

标签: php sql pdo

我正在寻找插入大数据的最佳方式。

有谁知道如何最有效地插入这些数据。 我正在寻找最优雅的方式。这有效,但有更快的方式或更优雅的方式吗?

    function SaveData($bigDataArray) {
        foreach ($bigDataArray as $item) { //$bigDataArray items (5000+)
            $this->Save($item['name'], $item['link'], $item['id']);
        }
    }

    function Save($name, $link, $id) {
        $this->db->beginTransaction();
        try {
            $result = $this->db->prepare('INSERT INTO table1 (songid, songTitle, youtubeid) VALUES (null, :name, :link);');
            $result->execute([':name' => $name, ':link' => $link]);

            $lastsId = $this->db->lastInsertId();

            $result = $this->db->prepare('INSERT INTO table2 (linkid, id, lastsId) VALUES (null, :playlistid, :lastsId);');
            $result->execute([':playlistid' => $id, ':$lastsId' => $lastsId]);

            $result = $this->db->prepare('UPDATE table3 SET count = count + 1 WHERE id = :id;');
            $result->execute([':id' => $id]);

            $this->db->commit();
        } catch (PDOException $e) {
            $this->db->rollBack();

            return false;
        }

        return true;
    }

0 个答案:

没有答案