在PHP中捕获mysql_query函数以创建自定义触发器

时间:2013-12-18 15:48:10

标签: php mysql triggers analytics

我有很多PHP项目,它在很多文件中使用mysql_connect函数。 我的目标是检测从PHP触发mysql_connect的次数。 (来自这个项目)。

想法是不修改现有项目文件并创建一些并行功能(触发器),只有当这个项目在PHP中调用mysql_connect时才会运行。

有没有办法配置PHP在mysql_connect上创建一些触发器?我的意思是,当PHP将调用mysql_connect时,此触发器必须检测到此并且并行运行另一个脚本,这将执行计数或其他操作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没有触发事件在新连接上触发(至少没有在此处列出:http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html

但您可以直接询问MySQL尝试了多少连接(成功与否)

show status like 'Connections'

(有关更多状态信息,请参阅:http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html#statvar_Connections

也许它也可以帮助您知道每个连接都有一个唯一的连接ID,您可以通过

检索
SELECT connection_id()

因此,如果您有一个由每个脚本查询的表,您的触发器可以对该表上的操作作出反应,获取活动连接的连接ID,并将其写入某处(如果之前尚未记录的话)。

请注意,如果MySQL服务器重新启动,则连接的枚举从头开始。这也适用于您可以使用show status检索的MySQL内部连接计数。

但正如已经提到的,我也强烈考虑在PHP方面解决这个问题。