2017-04-08 147 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太好了。我不知道。 –

相关问题