2017-04-08 34 views
0

我正在研究基於Laravel和Postgres的項目。 現在我想檢索存儲在使用SQL服務器數據庫的另一臺服務器中的學生數據。 我使用的搜索表單中,我輸入存儲在SQL服務器數據庫中的特定學生ID,我想填寫我的表單,根據輸入的ID從SQL服務器中檢索數據並將其存儲在我的主數據庫(Postgres)中。 在此先感謝!如何在Laravel中使用PostgreSQL數據庫從SQL Server數據庫中檢索一些數據

+0

它看起來像建議你要我們寫一些代碼,您在安裝配置&模型。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。證明這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有的話),期望的輸出以及實際獲得的輸出(控制檯輸出,回溯等)。您提供的細節越多,您可能會收到的答案就越多。檢查[FAQ]和[問]。 –

回答

0

我假設你已經安裝了SQL服務器並運行@ z2z建議的PHP環境設置。

你可以去root folder/config/database.php並插入數據庫實例的憑據sqlsrv,你可以有這樣的事情:

'sqlsrv' => [ 
     'driver' => 'sqlsrv', 
     'host' => env('DB_HOST', 'localhost'), 
     'database' => env('DB_DATABASE', 'forge'), 
     'username' => env('DB_USERNAME', 'forge'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'prefix' => '', 
    ], 

postgre你可以再拍一次這樣的事情:

'pgsql' => [ 
     'driver' => 'pgsql', 
     'host' => env('DB_HOST', '127.0.0.1'), 
     'port' => env('DB_PORT', '5432'), 
     'database' => env('DB_DATABASE', 'forge'), 
     'username' => env('DB_USERNAME', 'forge'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'prefix' => '', 
     'schema' => 'public', 
     'sslmode' => 'prefer', 
    ], 

注意:這裏的憑據來自env文件,你可以擁有它自己的。

現在,一旦設定完成後,你現在可以定義模型的連接類型,例如在用戶模式,你需要在類中添加:

protected $connection ="sqlsrv"; 

sql數據庫中獲取的用戶也可以定義:

protected $connection ="pgsql"; 

postgre數據庫

讓用戶也可以調用原始的查詢是這樣的:

$users = DB::connection('sqlsrv')->select(...); 

希望這會有所幫助。

+2

Postgres還有一個名爲postgres_fdw的功能,它可以讓你將你的sql數據庫「連接」到你的postgres數據庫,並像查詢數據庫一樣查詢它。在某些情況下,這可以很好地工作,而在其他情況下,這很慢。 docs here:https://www.postgresql.org/docs/9.3/static/postgres-fdw.html –

+0

@JoeLove太好了。我不知道。 –

相關問題