2016-06-30 54 views
2

我遇到了一個我無法解決的問題:我在Symfony上有項目,我需要連接到與項目放置在同一目錄中的數據庫。我使用PDOSqlite驅動程序來建立連接,但我有下一個問題 - PHP返回給我的消息,該連接是好的,但是當我嘗試從數據庫中獲取數據時,出現錯誤。另外,如果我在愚蠢的東西上改變DB的路徑,反正PHP告訴我,這個連接是好的。嘗試在Google中找到解決方案,但沒有成功。無法使用Symfony和Doctrine連接到SQLite DB

有我的代碼:

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(); 
    } 
} 

任何幫助將不勝感激

+0

[使用多束和數據庫中的多個SQLite的實體管理器在測試環境中](http://www.inanzzz.com/index.php/post/5wtr/using-multiple-sqlite-entity-managers-for-multiple-bundles-and-databases-in-test-environment)顯示如何設置它們。 (將多個MySQL實體管理器用於多個捆綁包和數據庫)[http://www.inanzzz.com/index.php/post/7cpx/using-multiple-mysql-entity-managers-for-multiple-bundles-and-databases ]展示瞭如何在代碼中訪問EM代碼。 – BentCoder

回答

2

的Symfony已經一個PDO來實現,你不需要打開或手動關閉的任何連接。

在你config.yml你有類似的東西嗎?

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

那麼你應該使用學說的實體管理器(doc here

編輯:您可以使用multiple entity managers如果不是你的默認連接DBAL a simple query

+0

問題在於,這只是.sqlite文件,我需要從一個表中獲取所有記錄到數組,並將此數組與從xls文件中獲得的數組進行比較。所以,我不需要創建實體或其他東西 - 只是讀取數據庫,查詢和獲取結果 –

+1

由於你的意見,我打開我的config.yml文件,並找到一個指令如何連接sqlite基地:D So ,謝謝你的回答 - 對我有用 –