SQL多次插入与睡眠

时间:2017-06-04 10:10:25

标签: php mysql

是否可以插入具有延迟类型的东西/睡眠的多个数据几秒钟? 例如,我将把值(1,2)插入到我的用户表中。然后在5秒后,它将继续将值(3,4)插入到同一个表中,等待5秒钟,最后将(5,6)插入表中。

INSERT INTO User (col1, col2)
VALUES (1, 2), (3, 4), (5, 6)

非常感谢任何建议!

3 个答案:

答案 0 :(得分:0)

<?php // da
$array = array(1, 2, 3, 4);
foreach ($array as $data) {
    mysqli_query($conn,"INSERT INTO ... SET data='".$data."'");
    sleep(1)
}
?>

那样的东西?我不太了解。

答案 1 :(得分:0)

所以我做的是通过像这样连接来创建查询。但是如果你想要多个插入,你可以在一个循环中调用该函数并删除这个睡眠,将它放在函数外部的循环中,或者如果调用不是一个线程,你可以把它留在那里。

<?php
static function insert_table_db($anArra){
        $dbconn = mysqli_connect(DB_HOST, DB_USER,DB_PASSWORD, DB_DATABASE) or die('MySQL connection failed!' . mysqli_connect_error());
        mysqli_set_charset($dbconn, "utf8");

        $query = "INSERT INTO `table`(`col1`, `col2`, `col3`, `col4`, `col5`) VALUES ";
        $i = 1;
        foreach ($anArray as $item) {
            $query = $query . "(" . $item[0]. "," . $item[1]. "," . $item[2] . "," . $item[3] . ",'" . $item[4] . "')";

            if (count($anArray) == $i){
                $query = $query . ";";
            } else {
                $query = $query . ",";
            }
            $i++;
        }

        // Run query
        if($dbconn->query($query) === true) {
            $dbconn->close();
        } else {
            echo "Database Error: " . $dbconn->error;
            $dbconn->close();
        }
    sleep(5);
}
?>

更新:对不起,如果有些变量没有意义我将它从我建立的库中删除了,还有一些额外的东西我没有删除; D。

答案 2 :(得分:0)

我找到了解决方案。也许它有点乱,但这就是我带来的并解决了我的问题。基本上我只需要使用prepare,如果我想重用该语句。

$stmt = $dbh->prepare("INSERT INTO user (col1, col2) VALUES ('1','2');
$stmt2 = $dbh->prepare("INSERT INTO user (col1, col2) VALUES ('3','4');
$stmt3 = $dbh->prepare("INSERT INTO user (col1, col2) VALUES ('5','6');

{ $stmt->execute();
  sleep(5);
  $stmt2->execute();
  sleep(5);
  $stmt3->execute();
}

这就是全部。感谢那些试图解决这个问题的人。