我正在构建的数据库系统遇到了一个非常烦人的问题。这很难解释,但我会尝试。该系统用于记录车间维修。它使用 PHP、MySQL、Javascript 和 Jquery 构建。在带有 DSM 5.1 的 Synology DS212+ 上运行我有 3 个文件有问题:
vr_edit.php
vr_edit_save.php
vr_edit_cancel.php
开始报告时,此文件正在生成新记录:
vr_edit.php?edit=new
$sth = $conn->prepare($sql_str);
$sth->execute($dataArr);
$vrnr = $conn->lastInsertId();
header("Location: ".$goto);
并将浏览器重定向到:
vr_edit.php?edit=45000
然后 vr_edit 读取记录并显示用于编辑它的表单。这是发送到显然保存数据的 vr_edit_save 。
在编辑表单中,您可以取消报告:
<button style="width: 165px; margin-top: 8px;" type="button" id="anullerknap" onclick="location.href=('vr_edit_cancel.php?vrnr=46008&setid=46008&cancelReturn=%2FVR3000-TEST%2Findex.php'); return false;"><u>A</u>nullér</button>
vr_edit_cancel.php:
$sql_str = "DELETE FROM `v_rapporter` WHERE vrnr = ".$vrnr." AND status = 'oprettet' LIMIT 1";
$sth = $conn->prepare($sql_str);
$sth->execute();
$sql_str = "ALTER TABLE `v_rapporter` AUTO_INCREMENT = 1;";
$sth = $conn->prepare($sql_str);
$sth->execute();
unset($sth);
unset($sql_str);
unset($conn);
header("Location: ".$goTo);//This points to old location before creating new record
所有这一切都很好,但现在问题开始了。当我在删除一个报告后创建一个新报告时。它得到与被删除的相同的 id (vrnr),这很好,它应该是。但突然它再次删除记录而没有调用任何脚本。它就像是完全随机的。有时它会在几秒钟内完成,有时会在一分钟后完成,有时根本不会。
我一直在努力寻找解决方案,但没有结果。我做了一个日志系统,一个基于文件的和一个基于数据库的。但是当我打开日志系统时,错误神奇地消失了。
我迷路了,有人可以帮助我吗?