循环插入查询到表及其关系表

时间:2015-06-01 16:22:21

标签: php mysql twitter

我有3个名为TweetsTeamsTweet_contain的表格。我尝试的是检查一组推文是否包含团队的推特用户名。如果他们这样做,则应将推文添加到Tweets表中,并且应根据推文文本中的团队Twitter用户名的数量将记录数添加到Tweet_contain表中。这就是问题所在。由于推文只应添加一次,并且团队和推文之间的关系可以在Tweet_contain中多次添加,因此会产生问题。这是因为$last_id将在$teamQuery被循环后返回0这一事实?

function checkTweetsForTeams($text, $created, $twitterId, $favoriteCount) {
    global $con;

    $ids = getTeams();

    foreach($ids as $id => $teams) {
        foreach($teams as $team) {

            if(stripos($text, $team) !== false) {

                $teamRelation = $con->prepare("INSERT INTO tweets(`created`, `twitterId`, `favoriteCount`) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE tweets.favoriteCount = ?");
                $teamRelation->bind_param("ssii", $created, $twitterId, $favoriteCount, $favoriteCount);
                $teamRelation->execute();
                $last_id = $con->insert_id;
                $teamRelation->close();

                $tweetRelation = $con->prepare("INSERT IGNORE INTO tweet_contain (`tweetId`, `teamId`) VALUES (?, ?)");
                $tweetRelation->bind_param("ii", $last_id, $id);
                $tweetRelation->execute();
                $tweetRelation->close();

            }
        }
    }
}

0 个答案:

没有答案