Sql server 在Laravel中使用PostgreSQL数据库时如何从SQL Server数据库检索数据
我正在从事一个基于Laravel和Postgres的项目。 现在我想检索存储在另一台使用SQLServer数据库的服务器中的学生数据。 我使用一个搜索表单,在其中输入存储在SQL server数据库中的特定学生ID,我希望使用根据输入的ID从SQL server检索的数据填充表单,并将其存储在我的主数据库(Postgres)中。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并插入数据库
提前谢谢 我假设您已经安装了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的建议设置配置和模型