找到运行查询的脚本的路径

时间:2017-01-29 22:35:29

标签: mysql

是否有任何查询返回有关正在运行它的当前脚本的信息? 例如,如果我有一个文件

/home/domain/public_html/script.php

我想在其中查询该文件以返回文件名和路径,即:

/home/domain/public_html/script.php

或至少是它的基本路径]

   /home/domain/public_html/

请注意我知道很多方法可以做到这一点,但我特别希望在响应和运行查询后从数据库中获取这些信息

1 个答案:

答案 0 :(得分:0)

不,MySQL服务器无法知道正在执行查询的PHP脚本的名称或路径,除非您告诉它。

我已经看到一些项目建立了一个编码实践,可以在SQL查询中附加注释,以帮助您识别源代码。

SELECT * FROM MyTable WHERE id = 123; /* File: script.php, Function: myFunction() */

然后,您会在MySQL进程列表和查询日志中看到这些注释。

您必须编写代码以将注释放入SQL中:

$sql = sprintf("SELECT * FROM MyTable WHERE id = 123; /* File: %s, Function: %s() */",
     __FILE__, __FUNCTION__);

如果您不想更改代码,另一个很好的解决方案是使用New Relic Application Monitoring,它可以为您跟踪代码中的SQL查询,而无需修改代码。支付New Relic服务的成本很高,但它是最好的解决方案。如果你想探索更便宜的替代品,请搜索google"新文物的替代品"。