Mysql-Klasse Prob

Also habe nur den zend Optimizer runtergehauen und schon lief wieder alles :)

ÄHm habe aber immer noch ein prob...ich versteh das mit dem define net so richtig....habe einfach mal so wie du es verändert hast ausprobiert aber da bekomme ich ich immer
Missing Argument 1,2,3,4 weil sind ja auch keine übergeben, oder wie machste das?!

Ist mir noch bissle zu hoch :P

MFG Niels
 
Also das define() tut nix anderes als was es bedeutet.

Es definiert einen Begriff.
Da ich hier nicht meinen mySql User und Pass frei zugänglich machen wollte, habe ich das nur so gemacht um es zu verdeutlichen das da noch was anderes stehen sollte.

Stell es dir so vor:

PHP:
$host = "localhost";
$database = "deineDatenbank";
$dbusername = "deinUser";
$db_pass = "deinPasswort";

define(dbHost, $host);
define(db, $database);
define(dbUser, $db_username);
define(dbPass, $db_pass);
define(dbPort, $db_port);   // is in diesem Beispiel egal is nur der Port für nen mysql_pconnect

Zudem hat es den schönen Nebeneffekt das man das $ nicht mehr braucht, da es anders definiert wurde. Zum Beispiel hier ist das Wort dbhost = localhost.

Siehe dazu die Zeilen:
PHP:
....
class mysql
{
        var $dbhost = dbhost;
        var $dbUser = dbUser;
        var $dbPass = dbPass;
        var $database = db;
...

Ich denke dein Fehler kommt weil eines der erforderlichen Variablen (Argumente) wohl leer ist.
Demnach mault PHP rum weil er nicht alle erforderlichen Argumente bekommen hat.
 
Zuletzt bearbeitet:
Ha jez funktioniert es wunderbar :) Dankeschön :)

Noch ne Frage, und zwar zu dem Zend Optimizer.... installiert man den nur Serverseitig und dann is gut oder muss man den auch mit in den Code einarbeiten?!

Wenn JA wie?

Würde mich sehr über ne Antwort freuen.

MFG Niels
 
Ich möchte die Klasse noch gerne um Mysql_fetch_array und mysql_num_rows usw erweitern.

So ich habe das nun so erweitert:

PHP:
<?php

// Datenbankdaten
$host = '******';
$database = '********';
$db_username = '*******';
$db_pass = '*********';

/////// Ab Hier NICHTS verändern !!
define(dbHost, $host);
define(db, $database);
define(dbUser, $db_username);
define(dbPass, $db_pass);
define(dbPort, $db_port);   

class mysql
{
        var $dbhost = dbHost;
        var $dbUser = dbUser;
        var $dbPass = dbPass;
        var $database = db;
        var $connection;
        var $db_select;
        var $dberror;
        var $debug;
		var $sqlquery;
        
        
        // Verbindung Aufbauen
        function connect($dbhost, $dbuser, $dbpw, $dbname)
        {
              
           $this->connection = mysql_connect($this->dbhost, $this->dbUser, $this->dbPass);
              if(!($this->connection))
              {
                $this->dberror = mysql_error();
              }
           $this->db_select = mysql_select_db($this->database, $this->connection);
              if(!($this->db_select))
              {
                $this->dberror = mysql_error();
              }
        }
        
        // Verbindung abbauen
        function disconnect()
        {
            if(is_resource($this->connection))
            {
                 mysql_close($this->connection);
            }
        }
        
		// Mysql-Query Abfrage
        function query($querystring)
        {
            if ($this->connection == false) $this->connect();
            if ($this->connection == false) return;
            $this->sqlquery = @mysql_query($querystring, $this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error());
        
        return $this->sqlquery;
        }
		
		// Mysql_fetch_array
		function fetcharray()
		{
		    if ($this->connection == false) $this->connect();
			if ($this->connection == false) return;
			
			if (is_resource($this->sqlquery))
			{
			   $fetch = @mysql_fetch_array($this->sqlquery);
			
			    if(is_resource($fetch))
			    {
			       return $fetch;
			    }
			    else
			    {
			       return FALSE;
			    }
			}
		}
}
?>


So mein prob ist, dass ich keine Ausgabe bekomme, wenn ich nach $Connection->query(); $Connection->fetcharray aufrufe.

Mache ich es aber so, dann funktioniert es:
PHP:
<?php
$cfgselect = $Connection->query("blabla");
$cfg = mysql_fetch_array($cfgselect);
?>

Würde mich sehr über ne Antwort freuen!

MFG Niels
 
Hmm, nu verstehe ich nicht unbedingt was du möchtest?

Das ist doch schon alles was du brauchst?

PHP:
        function query($querystring)
        {
            if ($this->connection == false) $this->connect();
            if ($this->connection == false) return;
            $res = @mysql_query($querystring, $this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error());
        
        return $res;
        }

Ob du nun ein:
PHP:
	$select = $Connection->query("SELECT * FROM `messagetable` ORDER BY `Timestamp` DESC LIMIT 0,10");
	$zeilen = mysql_num_rows($select);

			while($row = mysql_fetch_array($select))
			{
                              ........
                        }
Oder ein:
PHP:
	$select = $Connection->query("DELETE * FROM `messagetable` WHERE `id` = 5");

Ist dich relativ egal.
Es wird beides von der queryfunktion der Klasse ausgeführt.
Du brauchst keine speziellen Befehle, es wird eigentlich alles über diese Funktion abgedeckt.

Aber ich glaube bei deiner fetcharray Funktion wird der Funktion nicht ganz klar was für einen Querystring überhaupt bearbeitet werden soll?
 
Zuletzt bearbeitet:
Achso mit der Queryfunktion kann ich alle Eingaben bearbeiten...ok^^

Ja ich muss mich an den OOP Stil noch bissle gewöhnen.....das total Neuland für mich :P

MFG Niels
 
Zurück