php - 用php上传数据到mysql

标签 php mysql sql

我尝试将我的数据上传到 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);
?>

最佳答案

对于您在数据库中运行查询的每个数据。但你的情况下正确的方法是批量插入数据。您可以按照以下方式编写代码:

    $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;
            }

这将只在数据库中运行单个查询。因此会更快。

关于php - 用php上传数据到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511888/

相关文章:

php - 从 PHP 包含文件中替换字符串

PHP PhantomJS - "use JonnyW\PhantomJs\Client;"错误?

mysql - 为什么我的 IPV6 在存储时会被截断?

php - Mysql UPDATE WIth 多个 Where 语句

javascript - 使用Ajax传递Json变量并解码

mysql - MariaDB配置优化

html - 我的 onclick 函数在确保所有必填字段错误消息之前运行

php - SQL查询插入两次

php - 准备好的语句不适用于 ALTER 表查询

mysql - 根据派生表的结果将变量设置为数字