Php MySQL触发器:如何知道哪个脚本调用它?

Php MySQL触发器:如何知道哪个脚本调用它?,php,sql,mysql,triggers,Php,Sql,Mysql,Triggers,我有一个mysql触发器,它在每次更新特定表时都会记录日志 有没有一种方法可以记录是哪个PHP脚本触发的?(当然,如果不修改每一个php脚本,那将无法达到我的目的) 另外,是否有方法记录触发SQL语句的更新之前的SQL语句是什么 谢谢 内森简短回答:不,不,对不起 你想达到什么目标?也许还有另一种方法……没有,但你可以得到一些更具体的方向 首先,如果您正在使用持久连接,请将其关闭。这将使您的日志更易于使用 其次,因为听起来好像有多个代码库访问同一个数据库,所以为每个代码库创建一个具有完全相同权限

我有一个mysql触发器,它在每次更新特定表时都会记录日志

有没有一种方法可以记录是哪个PHP脚本触发的?(当然,如果不修改每一个php脚本,那将无法达到我的目的)

另外,是否有方法记录触发SQL语句的更新之前的SQL语句是什么

谢谢


内森

简短回答:不,不,对不起


你想达到什么目标?也许还有另一种方法……

没有,但你可以得到一些更具体的方向

首先,如果您正在使用持久连接,请将其关闭。这将使您的日志更易于使用

其次,因为听起来好像有多个代码库访问同一个数据库,所以为每个代码库创建一个具有完全相同权限的不同用户,并让每个代码库使用不同的用户登录。现在,当您查看日志时,您可以看到哪个应用程序正在做什么

第三,如果您登录了查询,那么触发之前的更新将是导致触发的更新


第四,如果您的应用程序对mysql连接使用任何封装,那么在将查询发送到数据库到文件时修改它以编写调用堆栈应该是很简单的。

我已经阅读了一些答案和注释。我有一个想法,只有当您的查询通过一个点时才有用。例如,如果您有一个执行所有查询的数据库类

如果是这种情况,您可以向查询本身添加注释。注释将包括函数调用跟踪,并将作为SQL注释添加到查询中

接下来,您将打开查询日志记录,并能够看到在日志文件中调用每个查询的位置

如果您的查询没有通过一个点,那么您可能运气不佳


最后一个建议是看一看。我并没有太多地使用它,但它被设计用于对查询进行中间处理。但是,我仍然认为您需要修改PHP脚本以传递更多信息。

我正在调查正在进行的sql注入攻击。我们使用不同的编程语言在许多文件中编写了大量代码。我希望能得到一些关于在哪里查找的提示…我想这是一个web应用程序。我会尝试扫描web访问日志,这样您就可以获得所有能够跟踪问题的信息。你也可以给我发私人电子邮件-罗兰。bouman@gmail.com我在我的时代(white hat)入侵了一些网站,也许我可以通过这种方式找到问题。查看您的日志文件,看看哪些类型的查询“飞”到您的服务器上。谢谢,不幸的是,我们没有使用一个类来处理sql。我们的旧代码库基本上是最基本的mysql_query()调用,只要需要。