是否有任何查询返回有关正在运行它的当前脚本的信息? 例如,如果我有一个文件
/home/domain/public_html/script.php
我想在其中查询该文件以返回文件名和路径,即:
/home/domain/public_html/script.php
或至少是它的基本路径]
/home/domain/public_html/
请注意我知道很多方法可以做到这一点,但我特别希望在响应和运行查询后从数据库中获取这些信息
答案 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"新文物的替代品"。