Sql server 在Laravel中使用PostgreSQL数据库时如何从SQL Server数据库检索数据

Sql server 在Laravel中使用PostgreSQL数据库时如何从SQL Server数据库检索数据,sql-server,postgresql,laravel,Sql Server,Postgresql,Laravel,我正在从事一个基于Laravel和Postgres的项目。 现在我想检索存储在另一台使用SQLServer数据库的服务器中的学生数据。 我使用一个搜索表单,在其中输入存储在SQL server数据库中的特定学生ID,我希望使用根据输入的ID从SQL server检索的数据填充表单,并将其存储在我的主数据库(Postgres)中。 提前谢谢 我假设您已经安装了SQL server,并按照@z2z的建议运行了PHP环境的安装程序 您可以转到根文件夹/config/database.php并插入数据库

我正在从事一个基于Laravel和Postgres的项目。 现在我想检索存储在另一台使用SQLServer数据库的服务器中的学生数据。 我使用一个搜索表单,在其中输入存储在SQL server数据库中的特定学生ID,我希望使用根据输入的ID从SQL server检索的数据填充表单,并将其存储在我的主数据库(Postgres)中。
提前谢谢

我假设您已经安装了SQL server,并按照@z2z的建议运行了PHP环境的安装程序

您可以转到
根文件夹/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' => '',
    ],
'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',
    ],
$users = DB::connection('sqlsrv')->select(...);
对于
postgre
,您可以制作另一个类似的:

 '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' => '',
    ],
'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',
    ],
$users = DB::connection('sqlsrv')->select(...);
注意:这里的凭证来自env文件,您可以拥有自己的凭证

现在,设置完成后,您可以在模型中定义连接类型,例如,在需要添加到类中的用户模型中:

protected $connection ="sqlsrv";
要从
sql
数据库获取用户,或者您可以定义:

protected $connection ="pgsql";
postgre
数据库获取用户

或者,您可以调用原始查询,如下所示:

 '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' => '',
    ],
'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',
    ],
$users = DB::connection('sqlsrv')->select(...);

希望这能有所帮助。

我猜是它的MS SQL Server 20XX。要做的事

  • 在服务器上,安装SQL server Driver for PHP,包括下载页面上列出的所有先决条件。 在PHP.ini中配置PHP以使用适当的SQLSRV驱动程序。
  • 在laravel中,按照@Nitish Kumar的建议设置配置和模型

看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。Postgres还有一个名为Postgres_fdw的功能,它允许您将sql数据库“连接”到Postgres数据库,并像在同一数据库中一样进行查询。在某些情况下,这可以很好地工作,在其他情况下,这是缓慢的。这里的医生:@JoeLove很棒。我不知道。