Php SQL更新中的Web主机延迟

Php SQL更新中的Web主机延迟,php,mysql,Php,Mysql,我正在使用VB.NET调用一个PHP脚本,该脚本将记录插入由我的Web空间提供商托管的数据库的表中。使用他们的PHPMyAdmin工具,它会立即显示出来。使用像MySQL Workbench这样的远程工具,它也会立即显示出来 如果我使用另一个PHP脚本来检索该数据,则需要10分钟才能显示该记录。类似地,如果我删除记录,用于检索数据的PHP脚本仍然会看到它在那里停留了大约10分钟。我怀疑数据库的副本被“迁移”到不同的活动副本,以便PHP访问;可能是出于安全原因 我对PHP有些陌生。这是已知的“特征

我正在使用VB.NET调用一个PHP脚本,该脚本将记录插入由我的Web空间提供商托管的数据库的表中。使用他们的PHPMyAdmin工具,它会立即显示出来。使用像MySQL Workbench这样的远程工具,它也会立即显示出来

如果我使用另一个PHP脚本来检索该数据,则需要10分钟才能显示该记录。类似地,如果我删除记录,用于检索数据的PHP脚本仍然会看到它在那里停留了大约10分钟。我怀疑数据库的副本被“迁移”到不同的活动副本,以便PHP访问;可能是出于安全原因

我对PHP有些陌生。这是已知的“特征”吗?有没有办法加快速度

谢谢


根据要求,以下是一些额外的细节和澄清: 谢谢我会尽量说得更详细、更具体一些。所有php脚本和数据库都由我的提供商托管

  • 从VB中,我从web提供商的网站调用一个php脚本(myInsert.php),将值插入到表中。这些值通过URL传递到myInsert.php。插入的记录有一个具有唯一值的字段(UserID)。脚本在插入时返回成功
  • 我还有一个php脚本(myCheckExist.php),我从VB运行该脚本,该脚本也位于web提供商的网站上,用于检查是否存在包含用户ID的特定记录。然后,它返回与UserID关联的其他值
  • 如果我运行myInsert.php,那么插入的记录将使用PHPMyAdmin或MySQLWorkbench立即可见。直到10分钟后,myCheckExist.php才会看到它。我通过定期运行myCheckExist.php脚本确定了这一点。10分钟后,插入的记录对myCheckExist.php可见

    十分钟后,当使用myCheckExist.php看到该记录时,如果我使用PHPMyAdmin从表中手动删除该记录,然后运行myCheckExist.php,脚本将继续返回该记录实际上仍然存在10分钟。在此之后,myCheckExist.php脚本返回记录不存在

    myCheckExist的代码如下所示:

    //routine to check if the record with the UserID is present.  Returns true if it has, returns false if not
    
    gc_collect_cycles();
    
        //Get the variables from the url line
        $USERID = $_GET['USERID'];
    
    //include the key variables
    //This comes from a file in the .htpasswds directory
        include '../.htpasswds/Progcfg.php';
    
        //Establish the connection to the database
    $cxn = mysqli_connect($servername, $username, $password, $dbname);
    
    if ($cxn->connect_error) {
        die("Connection failed: " . $cxn->connect_error);
    };
    
        //Build the SQL statement using the variables
    $sqlstatement = "SELECT NumberPurchased FROM TableUserInfo WHERE USERID = '$USERID'";
    
    //make the query
    $result = $cxn->query($sqlstatement);
    
    if ($result->num_rows >0) 
        {
        $row = $result->fetch_assoc();
        echo $row[NumberPurchased];
        }
    else
        {echo "False";
        }
    
        //close the connection
        mysqli_close($cxn);
    
    //I tried adding these in case it was a buffer issue, but they didn't seem to do anything regarding the delay
    unset($result);
    gc_collect_cycles();
    ob_end_clean();
    ?>
    
    我的想法是,PHPMyAdmin和MySQL Workbench等远程工具指向一个实时维护的“实时”数据库,PHP脚本(出于任何原因)在数据库副本上运行,该数据库每10分钟更新一次

    我联系了我的托管服务的技术支持,但他们不确定延迟,无法提供PHP编程支持


    如果您需要其他详细信息,请告诉我。

    Phpmyadmin顾名思义,是用php编写的。因此,php在获取任何信息方面都没有延迟。您的问题缺少任何细节,因此无法进一步提供任何信息。可能是一些简单的问题,如页面的浏览器缓存。您是否可以使用开发者工具(F12)在浏览器中检查您是否确实获得了一个新页面(结果代码200),或者该页面是否从缓存中获取?和/或在myCheckExists.php中输出一个时间戳,这样您就可以看到是否确实获得了一个新页面了?旁注:通常不需要使用
    gc\u collect\u cycles
    ,而且
    ob\u end\u clean
    在这种情况下似乎完全过时了。在脚本结束时,所有内容都被清理和刷新。由于是从VB程序调用的,因此不涉及真正的浏览器。我在VB中定义了一个web浏览器服务,但在停止VB程序时,该服务被清除。停止和启动VB程序对10分钟的延迟没有影响。时间戳是个好主意!将尝试一下。令人着迷的结果支持在服务器上发生一些延迟。仅使用以下代码:在它运行的前5次中,秒数已更新。之后,它直到10分钟后才更新。在我看来,有一种方法可以防止恶意脚本在一段时间内过于频繁地执行。如果我将脚本从checktime.php重命名为checktime1.php并再次运行,我将获得另外5个机会。