Some profiling info in $wpdb optionally.

git-svn-id: http://svn.automattic.com/wordpress/trunk@1543 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
saxmatt 2004-08-20 17:52:49 +00:00
parent 3c6bc4ae08
commit 38545517b1
1 changed files with 74 additions and 53 deletions

View File

@ -9,6 +9,7 @@ define('EZSQL_VERSION', 'WP1.25');
define('OBJECT', 'OBJECT', true); define('OBJECT', 'OBJECT', true);
define('ARRAY_A', 'ARRAY_A', false); define('ARRAY_A', 'ARRAY_A', false);
define('ARRAY_N', 'ARRAY_N', false); define('ARRAY_N', 'ARRAY_N', false);
if (!defined('SAVEQUERIES')) if (!defined('SAVEQUERIES'))
define('SAVEQUERIES', false); define('SAVEQUERIES', false);
@ -18,6 +19,7 @@ class wpdb {
var $num_queries = 0; var $num_queries = 0;
var $last_query; var $last_query;
var $col_info; var $col_info;
var $queries;
// Our tables // Our tables
var $posts; var $posts;
@ -38,7 +40,7 @@ class wpdb {
// DB Constructor - connects to the server and selects a database // DB Constructor - connects to the server and selects a database
function wpdb($dbuser, $dbpassword, $dbname, $dbhost) { function wpdb($dbuser, $dbpassword, $dbname, $dbhost) {
$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword); $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$this->dbh) { if (!$this->dbh) {
$this->bail(" $this->bail("
<h1>Error establishing a database connection</h1> <h1>Error establishing a database connection</h1>
@ -59,7 +61,7 @@ class wpdb {
// Select a DB (if another one needs to be selected) // Select a DB (if another one needs to be selected)
function select($db) { function select($db) {
if (!@mysql_select_db($db,$this->dbh)) { if (!@mysql_select_db($db, $this->dbh)) {
$this->bail(" $this->bail("
<h1>Can&#8217;t select database</h1> <h1>Can&#8217;t select database</h1>
<p>We were able to connect to the database server (which means your username and password is okay) but not able to select the <code>$db</code> database.</p> <p>We were able to connect to the database server (which means your username and password is okay) but not able to select the <code>$db</code> database.</p>
@ -134,11 +136,14 @@ class wpdb {
$this->last_query = $query; $this->last_query = $query;
// Perform the query via std mysql_query function.. // Perform the query via std mysql_query function..
$this->result = @mysql_query($query,$this->dbh); if (SAVEQUERIES)
$this->timer_start();
$this->result = @mysql_query($query, $this->dbh);
++$this->num_queries; ++$this->num_queries;
if (SAVEQUERIES) {
$this->savedqueries[] = $query; if (SAVEQUERIES)
} $this->queries[] = array( $query, $this->timer_stop() );
// If there is an error then take note of it.. // If there is an error then take note of it..
if ( mysql_error() ) { if ( mysql_error() ) {
@ -278,12 +283,29 @@ class wpdb {
} }
} }
function timer_start() {
$mtime = microtime();
$mtime = explode(' ', $mtime);
$this->time_start = $mtime[1] + $mtime[0];
return true;
}
function timer_stop($precision = 3) {
$mtime = microtime();
$mtime = explode(' ', $mtime);
$time_end = $mtime[1] + $mtime[0];
$time_total = $time_end - $this->time_start;
return $timetotal;
}
function bail($message) { // Just wraps errors in a nice header and footer function bail($message) { // Just wraps errors in a nice header and footer
echo <<<HEAD if ( !$this->show_errors )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> return false;
<html xmlns="http://www.w3.org/1999/xhtml"> echo <<<HEAD
<head> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<title>WordPress &rsaquo; Installation</title> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; Error</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css"> <style media="screen" type="text/css">
<!-- <!--
@ -322,16 +344,15 @@ echo <<<HEAD
} }
--> -->
</style> </style>
</head> </head>
<body> <body>
<h1 id="logo"><img alt="WordPress" src="http://static.wordpress.org/logo.png" /></h1> <h1 id="logo"><img alt="WordPress" src="http://static.wordpress.org/logo.png" /></h1>
HEAD; HEAD;
echo $message; echo $message;
echo "</body></html>"; echo "</body></html>";
die(); die();
} }
} }
$wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST); $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
?> ?>