在 phpMyAdmin 里显示内部执行的 query
作者:郑凯
phpMyAdmin 是学习 PHP 的好材料,也是学习 MySQL 的好材料,所有的操作和显示都是基于 PHP 发一些 query 过去的,完全没有任何黑箱操作,我的很多 query 都是跟 phpMyAdmin 学的,又快又可靠。
但是当你用 phpMyAdmin 做这些操作,比方说复制表或者创建新用户时,默认的 phpMyAdmin 是不显示这些 query 的。但只要很简单的几点改动就可以显示出来。只需要两步
1. 修改 libraries/dbi/mysql.db.lib.php 或者 libraries/dbi/mysqli.dbi.lib.php,这取决于你通常用哪个 PHP 模块,[url=http://php.net/manual/en/book.mysql.php]MySQL[/url] 或者 [url=http://php.net/manual/en/book.mysqli.php]MySQLi[/url],也可以都改
找到如下两行
[code]
function PMA_DBI_try_query($query, $link = null, $options = 0)
{
[/code]
修改为如下内容(上下更增加几行)
[code]
$aQueryHistory = array();
function PMA_DBI_try_query($query, $link = null, $options = 0)
{
global $aQueryHistory;
$aQueryHistory[] = $query;
[/code]
2.修改 libraries/footer.inc.php
找到 html 结束标签
[code]
?>
</body>
</html>
[/code]
在 ?> 之前加几行,改成如下
[code]
if (!empty($aQueryHistory)) {
echo "<ul>";
foreach ($aQueryHistory as $sQuery) {
echo "<li>".htmlspecialchars($sQuery)."</li>";
}
echo "</ul>";
}
?>
</body>
</html>
[/code]
最后的效果是,每页的页脚你都可以看到类似截图中的内容
[img][file=100][/img]
基于 phpMyAdmin 3.1.2 修改通过,非常古老的 phpMyAdmin 版本可能文件名会变变
这是非常简单和初级的内容,五六年前我就在这么用,但是很让人失望的是,工作中发现,很少有人知道应该这么改一下。
总之这篇文章是写给那些母语不是 PHP 却使用 phpMyAdmin 跟 MySQL 打交道的人,以及不适合当程序员的 PHP 程序员