Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] failed to open stream: No such file or directory und Frage zu PDO

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] failed to open stream: No such file or directory und Frage zu PDO

    Guten Abend,

    mit meinem Script versuche ich eine Datenbankverbindung aufzubauen.

    1. Dies scheint aber nicht ganz zu funktionieren. Es erscheinen zwei Fehlermeldungen, ich weiß was sie bedeuten und was der Fehler ist, dennoch bin ich ziemlich am grübeln woran das liegt, denn die Datei existiert und wurde meines Wissens nach korrekt (?) eingebunden.

    Code:
    Warning: require(/../../database/db_connect.php): failed to open stream: No such file or directory in /var/www/configuration/interface/classes/class.test.php on line 3
    
    Fatal error: require(): Failed opening required '/../../database/db_connect.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/configuration/interface/classes/class.test.php on line 3
    Meine Verzeichnisstruktur sieht folgendermaßen aus:

    /var/www/configuration/interface/classes/class.test.php
    /var/www/configuration/database/db_connect.php

    Nun muss ich die db_connect.php in meiner class.test.php includieren:

    PHP-Code:
    require("/../../database/db_connect.php"); 
    Sollte doch so richtig sein, oder habe ich irgendein "Scheiß" zusammengebaut?

    2. Ich bin mir nicht sicher ob alles richtig gemacht wurde. Würde jemand mal drüberschauen? Kann man den Code so lassen oder gibt eine bessere Möglichkeit der Umsetzung?

    PHP-Code:
    // db_connect.php

    class PDOConfig extends PDO {

        private 
    $engine;
        private 
    $host;
        private 
    $database;
        private 
    $user;
        private 
    $pass;

        public function 
    __construct() {
            
    $this->engine 'mysql';
            
    $this->host 'localhost';
            
    $this->database 'nameofdatabase';
            
    $this->user 'root';
            
    $this->pass 'mypassword';
            
    $dns $this->engine ':dbname=' $this->database ";host=" $this->host;
            
    parent::__construct($dns$this->user$this->pass);
        }
        

    }

    // class.test.php

    require("/../../database/db_connect.php");

    class 
    test {

        private 
    $db;

        public function 
    __construct() {

            
    $this->db = new PDOConfig();
        }

        function 
    selectUserFromDatabase() {
            
    $stmt $this->db->prepare('SELECT users_email from users WHERE users_id = 1');
            
    $stmt->execute();

            while (
    $row $stmt->fetch()) {
                  
    print_r($row);
            }
        }

    }

    // test.php (liegt im Hauptverzeichnis)

    ini_set('display_errors',1);
    error_reporting(-1);  

    require(
    "./configuration/interface/classes/class.test.php");



    $test = new test();

    $test->selectAllFromDatabase(); 
    Wäre super wenn jemand helfen könnte! Danke im Vorraus!

    Liebe Grüße

  • #2
    PHP-Code:
    require("/../../database/db_connect.php"); 
    lass mal das führende Slash weg.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Erstmal danke für deine schnelle Antwort!

      Leider bleibt es immer noch unverändert, die Datei müsste doch eigentlich korrekt eingebunden sein...

      Kommentar


      • #4
        Wenn Deine Angaben stimmen
        /var/www/configuration/interface/classes/class.test.php
        /var/www/configuration/database/db_connect.php
        und Tippfehler ausgeschlossen sind, muß es damit funktionieren:
        PHP-Code:
        require "../../database/db_connect.php"
        EDIT:
        Kann es sein, daß die class.test.php selbst per require eingebunden wird?
        Dann musst Du natürlich von der Ebene ausgehen...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Kann es sein, daß die class.test.php selbst per require eingebunden wird?
          Dann musst Du natürlich von der Ebene ausgehen...
          Oh.. genau das war der entscheidende Punkt! Danke!! Immer diese kleinen Fehler, schleichen sich immer wieder heimlich hinein tztztz

          Könntest du eventuell noch den Rest des Programmcodes durchschauen? Abgesehen davon dass ich gerade bemerkt habe dass der Methodenaufruf gar nicht so funktioniert weil diese nicht deklariert wurde

          Kommentar


          • #6
            Ich frage mich worin der Sinn der PDOConfig besteht.
            Das ist so, wie Du es gepostet hast nur ein Wrapper für den PDO Constructor.
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Oh, na ja so gesehen wollte ich es mit einer Klasse lösen.

              Kommentar

              Lädt...
              X