微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用PHP将数据上传到MySQL

我尝试将数据上传mysql,但仍能正常工作,但需要35秒,太多时间.

我需要在代码中进行哪些更改,使其运行速度超过35秒?

我使用PHP编写代码,并使用SQL查询将数据发送到名为“ words”的表中.

数据库的表中,我有4列(“ word”,“ num”,“ hit”,“ instoplist”).

我该如何解决这个问题?

谢谢

这是我的代码

<?PHP
    function removeStopWordsFromArray($words)
    {     
        ....... 
        insert($words);
    }

    function insert($myWords)
    {
        global $conn;

        foreach ($myWords as $key => $value) {
            $word = $value['word'];
            $number = $value['document'];
            $hit = $value['hit'];
            $stop = $value['stopList'];

             $sql = "INSERT INTO words (word,num,hit,instoplist) VALUES ('$word', '$number', '$hit','$stop')";

             if($conn->query($sql)!== TRUE)
             {
                    echo "error". $conn->error;
             }
        }

        fclose($fp);
    }

    $temp = pareseDocs();
    removeStopWordsFromArray($temp);
?>

解决方法:

对于每个数据,您都在DB中运行查询.但是,根据您的情况,正确的方法是分批插入数据.您可以按照以下方式编写代码

    $sql = "INSERT INTO words (word,num,hit,instoplist) VALUES";
     foreach ($myWords as $key => $value) {
                $word = $value['word'];
                $number = $value['document'];
                $hit = $value['hit'];
                $stop = $value['stopList'];        
                $sql .= "('$word', '$number', '$hit','$stop'),";                 
            }
            $sql = rtrim($sql,',') //to remove last comma


            if($conn->query($sql)!== TRUE)
            {
                        echo "error". $conn->error;
            }

这将仅在数据库中运行单个查询.因此将更快.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐