Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 由于未知查询,数据库发生了巨大变化_Php_Mysql_Sql_Apache - Fatal编程技术网

Php 由于未知查询,数据库发生了巨大变化

Php 由于未知查询,数据库发生了巨大变化,php,mysql,sql,apache,Php,Mysql,Sql,Apache,我们有一个与银行相关的应用程序,我们面临着这个非常严重的问题。问题是,随机数目的事务被更改为不同的状态。例如,今天有两个以上的lac事务被更改为挂起,但大多数事务已被解决、授权等。由于我们的应用程序太大,我们无法找到创建查询的问题 因此,目前我想知道,我是否可以限制与数据库的通信,以检查是否收到太多类似的请求,或者如果数据库表中有太多的条目发生了更改,那么它应该停止执行或停止什么的?我们高度赞赏每一种可能的解决方案,它至少能使这件事再次发生 谢谢如果您启用了版本控制,我相信一定有,我建议您从一个

我们有一个与银行相关的应用程序,我们面临着这个非常严重的问题。问题是,随机数目的事务被更改为不同的状态。例如,今天有两个以上的lac事务被更改为挂起,但大多数事务已被解决、授权等。由于我们的应用程序太大,我们无法找到创建查询的问题

因此,目前我想知道,我是否可以限制与数据库的通信,以检查是否收到太多类似的请求,或者如果数据库表中有太多的条目发生了更改,那么它应该停止执行或停止什么的?我们高度赞赏每一种可能的解决方案,它至少能使这件事再次发生


谢谢

如果您启用了版本控制,我相信一定有,我建议您从一个较小的版本点开始回滚,并在每次提交中检查与数据库相关的更改

编辑:

如果它发生在一组固定的表上,那么目前(在调试生产之前),您可能希望在发生这些更新的数据库用户的夜间特定时间撤销对这些表的更新权限。然后在该窗口结束后再次授予特权。这是一个绝望的局面,这是一个绝望的解决方案。您只能在几天内完成此操作(这是在不影响用户的情况下调试此操作所能花费的最多时间)


此外,如果发生这种情况的表集是固定的,则对这些表上的更新查询执行代码搜索,并首先查找sql注入漏洞。然后查找格式不正确的更新SQL。

考虑到它是一个银行应用程序,这看起来确实是一个严重的情况!是哪家银行?我只是问问,这样我就可以在那里开户了据我所知,你不能让MySQL执行外部脚本来实现这一点。最好的办法是将此代码注入数据库函数中(当然,假设您正在跟踪DRY,而不是在每个页面上重新连接和查询)。另外,请详细说明您想如何阻止它,或者您认为是什么导致了问题。它是在最近的更新之后开始的吗?在它被发现之前你最近做了什么?。我遇到了这样一个问题(当然不是银行应用程序的规模!),结果是我弄乱了一些WHERE子句或者遗漏了一些WHERE子句。如何调试你的应用程序以真正了解到底发生了什么?我有点困惑,这最终会变成一个如此复杂的线程。银行或其承包商肯定会有一些称职的SQL chap来回答这类问题,否?@talhamalik22在my.ini中,在[mysqld]部分设置log=“query.log”。query.log将写入datadir。并重新启动mysql。我们实际上正在检查最新的更新。但在我们不解决问题之前,我们不希望这种情况再次发生。奇怪的是,它不是基于事件的,它只是发生在午夜,当没有人在系统上工作时,它没有任何固定的事务,它从几百个交易到不同的事务处理,至少发生在固定的一组表中吗?如果是这样的话,那么目前(在调试产品之前),您可能希望在晚上某个特定时间撤销数据库用户对这些表的更新权限,这些更新是在该时间进行的。然后在该窗口结束后再次授予特权。这是一个绝望的局面,这是一个绝望的解决方案。您只能在几天内完成此操作(这是您在不影响用户的情况下调试此操作所能花费的最多时间)。同样,它没有固定的时间段,没有特定的用户或任何特定的事件。这随时都可能发生。这只是一个例子,它发生时,没有人使用该系统。但是是的,这是一个绝望的情况,绝望的解决方案可能是停止更新特定的表。