2016-07-10 12 views
0

Ich habe eine Klasse-Funktion in PHP (GetMenuItems.php), die mit der DB verbindet und ruft die Menüpunkte. Diese Funktion wird von den Dateien Menu.php und MenuAdmin.php aufgerufen.relativer Pfad SQLite3-Verbindung mit PDO funktioniert nicht

Das Problem ist, es funktioniert gut auf menu.php und nicht in MenuAdmin.php.

Ordnerstruktur:

  • localhost
    • FundosDB.db
    • index.php
    • menu.php
    • Klasse
      • GetMenuItems.php
    • Admin
      • admin.php
      • MenuAdmin.php

Anschluss: $db = new PDO('sqlite:FundosDB.db');

Wenn ich ändern th Die Verbindung zu: $db = new PDO('sqlite:..\FundosDB.db'); das Gegenteil passiert.

Wie kann ich es für beide Situationen arbeiten lassen? Und der relative Pfad sollte nicht zwischen der Klassendatei, in der die Verbindung hergestellt wird, und der DB-Datei statt zwischen der Datei, die die Funktion in der Klasse aufruft, und der DB-Datei bestehen? Ich bin verwirrt.

+0

Verwenden 'SERVER [ 'DOCUMENT_ROOT']':

define('DB_PATH', $_SERVER['DOCUMENT_ROOT'] . '/FundosDB.db'); 

es dann überall benutzen? –

+1

Wie verwenden Sie die ** GetMenuItems.php ** in beiden Dateien? – codisfy

+0

Ja, das funktioniert. ;) Was ist mit der letzten Frage? Vielen Dank. –

Antwort

1

einen Weg zu Ihrer DB-Datei Set mit $_SERVER['DOCUMENT_ROOT'] absoluten Pfad verwenden, so etwas wie:

$db = new PDO('sqlite:' . DB_PATH);