PHP PDO-Verbindung

Ich soll erstellen einer connection-Klasse für die Datenbankverbindung mit PDO in PHP

hier ist mein code :

<?php
class DatabaseConnection {

private $dbname     = "db_01";
private $host       = "localhost";
private $user       = "xxx";
private $password   = "xxxxxx";
private $port       = 5432;

private $DBH;

public function __construct() {
    try {
        $this->DBH  = new PDO("pgsql:host=$this->host;port=$this->port;dbname=$this->dbname;user=$this->user;password=$this->password");
    } catch(PDOException $e) {
        echo    $e->getMessage();  
    }

}
public function disconnect() {
    $this->DBH  = null; 
}
}
?>

Für die Abfrage in der PDO, die ich verwenden muss $DBH->query('SELECT * from user');

aber wie, wenn ich user meine connection-Klasse in einer anderen Klasse ?

Beispiel

<?php
include "DatabaseConnection.php";
class User {
    private $connection;

    public function getUser() {
        $this->connection = new DatabaseConnection();
        $STH = $this->connection->query('SELECT * from User');
    }
}
?>

Aber es funktioniert nicht.

Jede Stelle kann mir helfen ? Danke 🙂

UPDATE :

Folgen nach Jona empfehlen,

<?php

class DatabaseConnection extends PDO {

private $dbname     = "db_01";
private $host       = "localhost";
private $user       = "xxx";
private $password   = "xxxxxxxxx";
private $port       = 5432;

public function __construct() {
    try {
        parent::__construct("pgsql:host=$this->host;port=$this->port;dbname=$this->dbname;user=$this->user;password=$this->password");
    } catch(PDOException $e) {
        echo    $e->getMessage();  
    }

}
public function disconnect() {
    $this = null;   
}
}
?>

bekam ich die Nachricht "Die Verbindung wurde zurückgesetzt" im browser, was ist falsch ?

  • Könnten Sie die Fehlermeldung oder eine Beschreibung, was genau nicht? Meine Vermutung im moment ist, dass es keine Methode mit dem Namen query im DatabaseConnection-Klasse.
  • Nein, nichts angezeigt, nur bekam nichts. haben Sie PDO ?
  • Wenn nichts angezeigt wird dann gibt es irgendwann keine Fehler und das Skript erzeugt keine Ausgabe. Auf der anderen Seite in PHP könnte das unterdrücken von Fehlermeldungen. Schauen Sie in Ihrer php.ini wenn display_errors ist auf und error_reporting eingestellt ist E_ALL | E_STRICT. Wenn display_errors ist auf und es gibt immer noch keine Ausgabe, die Sie sollte hinzufügen echo "hello world"; um zu überprüfen, ob das Skript ordnungsgemäß ausgeführt wird.
InformationsquelleAutor Ahmad | 2011-07-23
Schreibe einen Kommentar