[mysqld] #Name of the queries log file (In datadir) log=mon_fichier.log
wampmysqld, Version: 5.1.44-community-log (MySQL Community Server (GPL)). started with: TCP Port: 3306, Named Pipe: (null) Time Id Command Argument 100305 18:24:13 1 Connect root@localhost on 1 Init DB aviatechno 1 Query SELECT m_date AS maj FROM avia_modifs ORDER BY m_date DESC LIMIT 1 1 Query SELECT conf_value AS forum_maintenance FROM punbb_config WHERE conf_name = 'o_maintenance' 1 Query SELECT m_type AS type, m_texte AS texte FROM avia_modifs ORDER BY m_id DESC LIMIT 10 2 Quit
<?php //Définition des variables MySQL en fonction de l'hébergeur // Afficher en bas de page toutes les requêtes exécutées // en décommentant le ligne suivante (Ne pas utiliser en production) //define('VOIR_REQUETES', 1); switch ($_SERVER['SERVER_NAME']) { case "aviatechno.free.fr": //Site chez free.fr $db_host = 'sql.free.fr'; $db_name = 'database_free.fr'; $db_username = 'user_free.fr'; $db_password = 'mot_de_passe_sql_free'; break; case "aviatechno": //Site local Wampserver $db_host = 'localhost'; $db_name = 'database_locale'; $db_username = 'user_local'; $db_password = 'mot_de_passe_local'; break; case "aviatechno.info": //Site chez 1and1 $db_host = 'dbxyz.1and1.fr'; $db_name = 'database_1and1'; $db_username = 'user_1and1'; $db_password = 'mot_de_passe_1and1'; break; default: $db_host = NULL; $db_name = NULL; $db_username = NULL; $db_password = NULL; } ?>
<?php include_once('mysql_fonctions.php'); class Data_Base { var $prefix; var $link_id; var $query_result; var $saved_queries = array(); var $num_queries = 0; //Connexion à Mysql puis à la base de données function __construct($db_host, $db_username, $db_password, $db_name, $db_prefix = "" { $this->prefix = $db_prefix; $this->link_id = mysql_connect($db_host, $db_username, $db_password); if ($this->link_id) { if (@mysql_select_db($db_name, $this->link_id)) return $this->link_id; else error('Impossible de se connecter à la base de données. MySQL dit : '.mysql_error(), __FILE__, __LINE__); } else error('Impossible de se connecter au serveur MySql. MySQL dit : '.mysql_error(), __FILE__, __LINE__); } function query($sql) { if (strlen($sql) > 50000) exit('Requête bien trop importante.'); if (defined('VOIR_REQUETES')) $q_start = lire_microtime(); $this->query_result = @mysql_query($sql, $this->link_id); if ($this->query_result) { if (defined('VOIR_REQUETES')) $this->saved_queries[] = array($sql, (lire_microtime() - $q_start)); ++$this->num_queries; return $this->query_result; } else { if (defined('VOIR_REQUETES')) $this->saved_queries[] = array($sql, 0); return false; } } function result($query_id = 0, $row = 0) { return ($query_id) ? @mysql_result($query_id, $row) : false; } function fetch_assoc($query_id = 0) { return ($query_id) ? @mysql_fetch_assoc($query_id) : false; } function fetch_row($query_id = 0) { return ($query_id) ? @mysql_fetch_row($query_id) : false; } function num_rows($query_id = 0) { return ($query_id) ? @mysql_num_rows($query_id) : false; } function affected_rows() { return ($this->link_id) ? @mysql_affected_rows($this->link_id) : false; } function insert_id() { return ($this->link_id) ? @mysql_insert_id($this->link_id) : false; } function get_num_queries() { return $this->num_queries; } function get_saved_queries() { return $this->saved_queries; } function free_result($query_id = false) { return ($query_id) ? @mysql_free_result($query_id) : false; } function escape($str) { if (is_array($str)) return ''; else if (function_exists('mysql_real_escape_string')) return mysql_real_escape_string($str, $this->link_id); else return mysql_escape_string($str); } function error() { $result['error_sql'] = @current(@end($this->saved_queries)); $result['error_no'] = @mysql_errno($this->link_id); $result['error_msg'] = @mysql_error($this->link_id); return $result; } function close() { if ($this->link_id) { if ($this->query_result) @mysql_free_result($this->query_result); return @mysql_close($this->link_id); } else return false; } } //Connection à MySql et à la base de données $db = new Data_Base($db_host, $db_username, $db_password, $db_name); ?>
<?php function lire_microtime() { list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec); } //Affiche les requêtes function voir_requetes_memorisees() { global $db; $saved_queries = $db->get_saved_queries(); $nb_queries = count($saved_queries); echo "<div id='requete'>\n"; if($nb_queries > 0) { echo "<table>\n"; echo "<caption>Informations d'accès à la base de données</caption>\n"; echo "<tr><th>N°</th><th>Durée (s)</th><th style='width:656px;'>Requête</th></tr>\n"; $query_time_total = 0.0; for($i=0;$i < $nb_queries;$i++) { list(, $cur_query) = each($saved_queries); $query_time_total += $cur_query[1]; echo "<tr><td style='text-align:right;'>".($i+1)."</td>"; echo "<td style='text-align:center;'>".(($cur_query[1] != 0) ? sprintf('%.6f',$cur_query[1]) : ' ')."</td>"; echo "<td>".htmlspecialchars($cur_query[0])."</td></tr>\n"; } echo "<tr><td colspan='3' style='text-align:center;'>Durée totale des requêtes : ".sprintf('%.6f',$query_time_total)." s</td></tr>\n"; echo "</table>\n"; } else echo "<p>Aucun accès à la base de données</p>\n"; echo "</div>\n"; } // Affiche un message d'erreur function error($message, $file="", $line=0, $db_error = false) { // Vide le buffer @ob_end_clean(); // Redémarre le buffer ob_start('ob_gzhandler'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "[www.w3.org]; <html> <head> <meta http-equiv='content-type' content='text/html; charset=iso-8859-1'> <meta http-equiv='Content-Language' content='fr'> <title>Erreur</title> </head> <body id='debut_'> <h2>Désolé, une erreur est survenue</h2> <?php echo "<p>".$message."</p>\n"; if(defined('OTO_DEBUG')) { if($file !="" echo "<p>Fichier : ".$file; if($line !=0) echo " - Ligne : ".$line; echo "</p>\n"; } else echo "<h2>Merci d'en informer le responsable du site</h2>\n"; ?> </div> </body> </html> <?php // Si une connexion base de données déjà établie, on la ferme if ($db_error) $GLOBALS['db']->close(); exit; } ?>
include('chemin_du_fichier/config_base.php'); include('chemin_du_fichier/mysql.php'); ... $sql = "SELECT ... FROM ... "; $result = $db->query($sql); extract($db->fetch_assoc($result));et, à la fin de chaque page :
if (defined('VOIR_REQUETES')) voir_requetes_memorisees(); if(isset($db)) $db->close();En décommentant la ligne //define('VOIR_REQUETES', 1); du fichier config_base.php, voilà ce qu'on peut obtenir: