gpt4 book ai didi

javascript - PHP-等待值存储在 mySQL 中

转载 作者:行者123 更新时间:2023-11-29 07:34:11 25 4
gpt4 key购买 nike

我正在运行一个 PHP,它将一个文件上传到我的服务器,然后我使用另一个脚本对该文件进行一些计算,并将一些数据(计算结果)上传到 mySQL。之后,我使用将文件上传到服务器的同一 PHP 语言从 mySQL 读取此数据(计算结果)。问题是我不知道在我的服务器中处理这个文件需要多长时间,可能需要 5 秒或 2 分钟,所以现在我使用 sleep(40),因为大多数文件处理时间更短(但不是全部...)以确保我在 mySQL 中查找的值将在那里,但这不是应该完成的方式。有什么方法可以让程序等到我要查找的值(使用我刚刚上传的文件进行的计算结果)存储在 mySQL 中吗?不断检查值是否存在以及何时存在的东西会继续运行程序?我认为 PHP 可能无法实现,我可能需要 javascript。这是我的代码:

$uploaddir = '/opt/lampp/htdocs/stl';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
$link = mysql_connect("whatever", "whatever...", "whatever...whatever");
$nombre=basename($_FILES['userfile']['name']);
$tamany=basename($_FILES['userfile']['size']);
$sql="INSERT INTO `wordpress`.`uploads` (`autoinc`, `nombre`, `tamany`, `fecha` , `cantidad`) VALUES (NULL, '$nombre', '$tamany', CURRENT_TIMESTAMP , '$cantidad')";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
mysql_select_db('wordpress');
mysql_query($sql);
rename ( $uploadfile,$uploaddir."/".mysql_insert_id().".stl");
$uploadfile_we=basename($uploadfile,".stl");
$numero=mysql_insert_id();
echo '<pre>';
sleep(40);
$sqls= "SELECT `cond` FROM `cm` WHERE `id`='$numero'";
$result = mysql_query($sqls);
$row = mysql_fetch_assoc($result);
$condicion = $row['cond'];
}

如您所见,文件被上传,然后我在数据库中查找。我如何知道数据库是否已经更新?

最佳答案

无需编写代码,您就可以使用数据库来同步您的流程。

  1. 上传后在数据库中放置一行。这将(可用于)为新文件生成 ID 值。

  2. 处理文件,更新文件记录上的标志(由 ID 标识),以指示处理已完成。

  3. 在原始代码中,有一个循环会在检查数据库状态之前等待一小段时间(可能是一秒钟)。一旦文件被处理,或者已经过去了太多时间,请采取适当的措施。

还有其他方法可以在进程之间来回传递信息,但似乎您已经在数据库中执行与正在上传的文件相关的操作。

关于javascript - PHP-等待值存储在 mySQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com