我有很多PHP项目,它在很多文件中使用mysql_connect
函数。
我的目标是检测从PHP触发mysql_connect的次数。 (来自这个项目)。
想法是不修改现有项目文件并创建一些并行功能(触发器),只有当这个项目在PHP中调用mysql_connect
时才会运行。
有没有办法配置PHP在mysql_connect
上创建一些触发器?我的意思是,当PHP将调用mysql_connect
时,此触发器必须检测到此并且并行运行另一个脚本,这将执行计数或其他操作。
有什么想法吗?
答案 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方面解决这个问题。