我使用VB.NET调用PHP脚本,该脚本将记录插入由我的webspace提供者托管的数据库中的表中。使用他们的PHPMyAdmin工具,它立即显示。使用像MySQL Workbench这样的远程工具,它也会立即显示出来。
如果我使用其他PHP脚本来检索该数据,则需要10分钟才能显示该记录。同样,如果我删除记录,用于检索数据的PHP脚本仍会在那里看到大约10分钟。我怀疑数据库的副本是"迁移" PHP要访问的不同活动副本;可能出于安全原因。
我对PHP有点新鲜。这是一个已知的"功能"?有什么方法可以加快速度吗?
谢谢!
根据要求,这里有一些额外的细节和说明: 谢谢。将尝试更详细和具体。所有php脚本和数据库都是从我的提供商托管的。
如果我运行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这样的远程工具指向" live"实时维护的数据库以及PHP脚本(无论出于何种原因)对每10分钟更新一次的数据库副本进行操作。
我在我的托管服务中联系了技术支持,但是他们不确定延迟并且无法提供PHP编程支持。
如果您需要其他具体细节,请与我们联系。