Matthias: "MySql Link" als Parameter weitergeben

Beitrag lesen

Danke schonmal für deine Antwort!

Anbei etwas größere Ausschnitte des Codes, viel mehr sollte dafür ja aber eigentlich nicht relevant sein:

Klasse Database
---------------

class Database {

private $resource = null;

public function __construct($_host, $_user, $_password, $_database) {

// Connect to MySql server
    $this->resource = @mysql_connect($_host, $_user, $_password);
    if(!$this->resource)
      throw new SqlException("Connection failed");

// Select database
    if(!@mysql_select_db($_database, $this->resource))
      throw new SqlException("Database selection failed");

// Set character encoding
    $this->queryNoResponse("SET NAMES 'UTF8'");

}

public function query($_query) {

return new Query($_query, $this->resource);

}

}

Klasse Query
------------

class Query {

private $query = null;

public function __construct($_query, $_resource, $_buffered = true) {

//var_dump() gibt hier als zweite Zeile NULL aus!

// Do query
    if($_buffered)
      $this->query = @mysql_query($_query, $_resource);
    else
      $this->query = @mysql_unbuffered_query($_query, $_resource);

// Throw exception if query was not successful
    if($this->query == null) throw new SqlException("Query failed", $_query);

}

public function fetch() {

if($this->query == null) throw new SqlException("Query not found");

if($row = mysql_fetch_array($this->query)) {
      // Return row if new row fetched
      return $row;
    } else {
      // Return false if no row left
      return false;
    }

}

}

Mein Script
-----------

$db = new Database("localhost", "root", "***", "test");
// Bis hierher noch kein Fehler, obwohl ja im Konstruktor auch schon ein Query ausgeführt wird

$query = $db->query("SELECT * FROM test"); // Hier tritt der Fehler auf