2016-06-30 6 views
2

Ich habe ein Problem, das ich nicht lösen kann: Ich habe Projekt auf Symfony und ich muss eine Verbindung zu Datenbank, die im gleichen Verzeichnis mit Projekt platziert. Ich benutzte PDOSqlite-Treiber, um Verbindung herzustellen, aber ich habe nächstes Problem - PHP gibt mir Nachricht zurück, diese Verbindung ist OK, aber wenn ich versuche, Daten von DB zu erhalten, habe ich einen Fehler erhalten. Auch, wenn ich den Pfad zu DB auf etwas Dummes ändere, erzähle mir PHP trotzdem, dass die Verbindung gut ist. Versuchen Sie, eine Lösung in Google zu finden, aber ohne Erfolg.Ich kann keine Verbindung mit SQLite DB mit Symfony und Doctrine

Es ist mein Code:

protected function getDB() { 
    $dbRoute = $this->get('kernel')->getRootDir() . '/Resources/data/db/2016-06-23.sqlite'; 

    $driver = new PDO\Driver(); 

    $connect = array(
     'url' => 'sqlite:///'.$dbRoute 
    ); 

    try { 
     $db = $driver->connect($connect); 
     echo 'Connection esteblished'; 
     return $db; 
    } catch (\Exception $e) { 
     return $e->getMessage(); 
    } 
} 

Jede Hilfe wird

+0

[mehr SQLite Entity-Manager Verwendung für mehrere Bundles und Datenbanken in Testumgebung] (http://www.inazzz.com/index.php/post/5wtr/using-multiple-sqlite-entity-managers-for-multiple-bundles-and-databases-in-test-environment) zeigt wie man sie einrichtet. (Verwendung mehrerer MySQL-Entity-Manager für mehrere Bundles und Datenbanken) [http://www.inanzzz.com/index.php/post/7cpx/using-multiple-mysql-entity-managers-for-multiple-bundles-and-databases ] zeigt, wie Sie in Ihrem Code für sqlite auf EMs zugreifen können. – BentCoder

Antwort

2

Symfony bereits ein PDO umgesetzt zu erkennen ist, Sie brauchen nicht zu öffnen oder Verbindung manuell zu schließen.

In dir config.yml hast du sowas?

doctrine: 
    dbal: 
     driver: pdo_sqlite 
     path:  "%kernel.root_dir%/Resources/data/db/2016-06-23.sqlite" 

Dann sollten Sie Lehre EntityManager (doc here)

EDIT: Sie können multiple entity managers verwenden, wenn es nicht Ihre Standardverbindung ist mit DBAL a simple query

+0

Problem ist, dass dies nur .sqlite-Datei ist und ich alle Datensätze von einer Tabelle zu Array erhalten muss und dieses Array mit Array getted aus xls-Datei zu vergleichen. Also, ich brauche nicht Entity oder etwas anderes zu erstellen - einfach Datenbank lesen, Abfrage machen und Ergebnis holen –

+1

Aufgrund Ihres Hinweises öffne ich meine config.yml Datei und finde dort eine Anleitung wie man sqlite base verbindet: D So Danke für deine Antwort - es war nützlich für mich –