通过ajax同时在多个数据库中执行更新查询

时间:2015-10-21 06:39:24

标签: php mysql ajax

我以date("h:i:s")为例。我曾尝试同时对多个数据库执行更新查询,但时间可能不同1或2秒。我想知道是否还有其他方法可以同时执行它。

这是我的剧本

<script type="text/javascript">
<!--
    function updateTimer() {
        var db = "1,2,",
        dbindex = db.split(","),
        countdb = 2;
        function retrieve(id) {
            if(id < countdb) {
                $.ajax({
                    url: 'update.php',
                    type: 'post',
                    data: {
                        idx : dbindex[id]-1
                    },
                    success: function (output) {
                        id++;
                        retrieve(id);
                    },
                    error: function () {
                        alert("Error Update");
                    }
                });
            }
         }
         retrieve(0);
      }
//-->
</script>

update.php

$idx = $_POST["idx"];
$conn = $db[$index[$idx]]; // testdb and test2db
$timer = date("h:i:s");
mysqli_query($conn,"update table set timer='".$timer."'");

1 个答案:

答案 0 :(得分:0)

是。您可以在POST中发送一个DB_ids数组;

function retrieve(id) {
     data = [];
     for(;id<countdb;id++)
     {
          data.push(dbindex[id]-1)
     }
     $.ajax({
             url: 'update.php',
             type: 'post',
             data: {
                 idx : data
             },
             success: function (output) {
                alert("Ok!");
             },
             error: function () {
                alert("Error Update");
             }
         });
     }

if(isset($_POST["idx"])){
    $idx = $_POST["idx"];
    foreach($idx as $id){
        $conn = $db[$index[$id]]; // testdb and test2db
        $timer = date("h:i:s");
        mysqli_query($conn,"update table set timer='".$timer."'");
    }
}

但你需要做一些验证。