2017-03-06 5 views
0

Ich bin neu in OOP und PHP, also habe ich ein Problem hier. Könnte mir jemand sagen, was ich mit meiner Verbindungsklasse falsch mache? Es verbindet sich nicht mit der Datenbank, ich habe versucht, var_dump ($ this) in try-Anweisung und es funktioniert entweder nicht. Ich meine auch am Wechsel ‚dbname‘ zu einem zufälligen Namen und der Code noch ‚funktioniert‘ ..Warum die Verbindungsklasse die Verbindung nicht herstellt?

Hier ist mein Code:

<?php 
    class connection { 
     // Setting Database Source Name (DSN) 
     public function __construct() { 
      $dsn = 'mysql:host=localhost;dbname=employee'; 
      // Setting options 
      $options = array (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); 
      // Making the connection to the database 
      try { 
       $this->dbh = new PDO($dsn, 'root', '', $options); 
      } 
      catch (PDOException $e) { 
       $this->error = $e->getMessage(); 
      } 
     } 
    } 
    $connection = new connection(); 
?> 
+1

Versuchen 'echo $ e-> getMessage();' im 'catch' die Fehlerdetails zu sehen. Es funktioniert wegen des try catch Blocks – codtex

+0

Sie sollten die Anzeige von Fehlern zuerst aktivieren. Ihre Klasseneigenschaften sind noch nicht definiert. – Raptor

+0

und ja über Skript 'error_reporting (E_ALL); 'und ' ini_set ("display_errors", 1); ' – codtex

Antwort

0

Jede Methode in der Klasse hat etwas zurück. Versuchen:

class Connection { 

    private $connection;  
    // Setting Database Source Name (DSN) 
    public function __construct() { 
     $dsn = 'mysql:host=localhost;dbname=employee'; 
     // Setting options 
     $options = array (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); 
     // Making the connection to the database 
     try { 
      $this->connection = new PDO($dsn, 'root', '', $options); 
     } 
     catch (PDOException $e) { 
      $this->error = $e->getMessage(); 
     } 
    } 

    public function DoSomething() 
    { 
     //do something with your $this->connection and return some value; 
    } 
} 
$connection = new Connection(); 
echo $connection->DoSomething(); 
+0

Namenskonvention: Besser, einen Klassennamen mit dem Großbuchstaben – Raptor

+1

zu beginnen, diese "Antwort" ist im Wesentlichen nutzlos. –

+0

^wahr, bearbeitet-- – xxx

Verwandte Themen