Grüße!
Ich habe eine eigene MySQL-Klasse geschrieben, die auch wunderbar funktioniert.
Nun bin ich ein kleiner "Statistik-Fetischist" und wollte mir gern PHP- und MySQL-Generierungszeiten anzeigen lassen.
Das funktioniert ebenfalls wunderbar, bis auf eine Kleinigkeit: die Anzahl der Queries. - Hier gibt's irgendwie einen Bug und ich sitze jetzt schon 2 Wochen dran und habe alles Mögliche probiert, aber es will einfach nicht!
Grundsätzlich funktioniert der Queries-Zähler schon, das ist nicht das Problem.
Allerdings habe ich noch einige für mich sehr nützliche Funktionen, die sich in einer 2. Klasse befinden und in dieser Klasse nutze ich ALLE Funktionen, die ich in der 1. Klasse habe.
Nun ist es bekannt, dass man via "extends" einer 2. Klasse die Funktionen einer anderen Klasse übergeben kann - nur genau hier kommt der Bug ins Gespräch: der Queries-Zähler (und eventuell auch der MySQL-Generation-Counter, kann das ja schlecht stoppen ) streikt und zählt nicht!
Bitte helft mir, ich bin wirklich vollends verzweifelt...
Quellcode von Klasse 1:
Und hier nun der Quellcode der 2. Klasse, die die Funktionen der 1. Klasse nutzt:
Ich habe eine eigene MySQL-Klasse geschrieben, die auch wunderbar funktioniert.
Nun bin ich ein kleiner "Statistik-Fetischist" und wollte mir gern PHP- und MySQL-Generierungszeiten anzeigen lassen.
Das funktioniert ebenfalls wunderbar, bis auf eine Kleinigkeit: die Anzahl der Queries. - Hier gibt's irgendwie einen Bug und ich sitze jetzt schon 2 Wochen dran und habe alles Mögliche probiert, aber es will einfach nicht!
Grundsätzlich funktioniert der Queries-Zähler schon, das ist nicht das Problem.
Allerdings habe ich noch einige für mich sehr nützliche Funktionen, die sich in einer 2. Klasse befinden und in dieser Klasse nutze ich ALLE Funktionen, die ich in der 1. Klasse habe.
Nun ist es bekannt, dass man via "extends" einer 2. Klasse die Funktionen einer anderen Klasse übergeben kann - nur genau hier kommt der Bug ins Gespräch: der Queries-Zähler (und eventuell auch der MySQL-Generation-Counter, kann das ja schlecht stoppen ) streikt und zählt nicht!
Bitte helft mir, ich bin wirklich vollends verzweifelt...
Quellcode von Klasse 1:
PHP-Code:
class mysql
{
var $database = 'DB_NAME';
var $hostname = 'localhost';
var $username = 'my_user';
var $password = 'my_pass';
function open()
{
$this->open = mysql_connect($this->hostname, $this->username, $this->password);
if (!$this->open)
{
echo "MySQL-Error #: " . mysql_errno() . "\n<br />\nMySQL-Error: " . mysql_error();
}
$this->select = mysql_select_db($this->database);
if (!$this->select)
{
echo "MySQL-Error #: " . mysql_errno() . "\n<br />\nMySQL-Error: " . mysql_error();
}
return $this->open;
return $this->select;
}
function query($dbQuery)
{
global $sql_queries;
global $sql_gentime;
$sql_starttime = microtime();
$this->query = mysql_query($dbQuery);
$sql_endtime = microtime();
!isset($sql_queries) ? $sql_queries = '0' : $sql_queries++;
!isset($sql_gentime) ? $sql_gentime = '0.000' : $sql_gentime = round(
($sql_endtime - $sql_starttime), 3) + $sql_gentime;
if ($this->query == false)
{
echo "MySQL-Error #: " . mysql_errno() . "
<br />
MySQL-Error: " . mysql_error() . "
<br />
MySQL-Query: " . $dbQuery;
}
return $this->query;
}
function fetch($fetchQuery)
{
$fetchQuery == 0 ? $this->fetch = mysql_fetch_array($this->query) : $this->fetch =
mysql_fetch_array($fetchQuery);
return $this->fetch;
}
function num_rows($rowsQuery)
{
$rowsQuery == 0 ? $this->num_rows = mysql_num_rows($this->query) : $this->num_rows =
mysql_num_rows($rowsQuery);
return $this->num_rows;
}
function shut()
{
$this->shut = mysql_close($this->open);
if (!$this->shut)
{
echo "MySQL-Error #: " . mysql_errno() . "\n<br />\nMySQL-Error: " . mysql_error();
}
return $this->shut;
}
}
$mysql = new mysql;
Und hier nun der Quellcode der 2. Klasse, die die Funktionen der 1. Klasse nutzt:
PHP-Code:
class tools extends mysql
{
function bbc($code)
{
// ...
}
{
$this->open();
$this->query("DELETE
FROM server_usage
WHERE time < " . (time() - 86400));
$this->query("INSERT
INTO server_usage (time, ip)
VALUES (" . time() . ", '" . $_SERVER['REMOTE_ADDR'] . "')");
$this->query("SELECT time
FROM server_usage");
$this->num_rows();
$this->shut();
return $this->num_rows;
}
function version()
{
$this->open();
$build = $this->fetch($this->query("SELECT VERSION()"));
$this->shut();
$this->version = substr($build[0], 0, -4);
return $this->version;
}
}
$tools = new tools();
Kommentar