machaven / laravel-sqlserver
使用ODBC从Laravel 5+连接到您的SQL Server实例
dev-master / 1.0.x-dev
2020-07-31 11:09 UTC
Requires
- php: ^5.5.9|^7.0|^7.1|^7.2|^7.3
- ext-odbc: *
- illuminate/support: ~5.1|^6.0
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-29 05:29:41 UTC
README
使用ODBC从Laravel 5+连接到您的SQL Server实例。
此包允许您使用官方的Microsoft SQL Server ODBC驱动程序连接到Microsoft SQL Server数据库。
免责声明:这里显示的所有Bash命令都是针对RHEL/CentOS Yum包管理器的示例。如果您想帮助使这些文档更适合其他发行版,请确保在README中提交一个拉取请求或在GitHub上提交一个问题,并附带额外的命令以及您正在使用的发行版,我将更新README文档。
依赖关系
UnixODBC
sudo yum install -y unixodbc
PHP的ODBC PDO驱动程序
sudo yum install -y php-odbc
Microsoft的SQL Server驱动程序
您可以在以下位置找到针对您发行版的特定说明: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server
包安装
使用composer安装
composer require techscope/laravel-sqlserver:dev-master
将服务提供者添加到config/app.php
TechScope\SqlServer\SqlServerServiceProvider::class
请确保更新您的config/database.php文件
'domdb' => [ 'driver' => 'sqlsrv', 'odbc_driver' => '{ODBC Driver 13 for SQL Server}', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'port' => env('DB_PORT', '1433'), 'TrustServerCertificate' => 'yes' ],
重要提示
driver应设置为sqlsrv。这使用Laravel附带预存的SQL Server语法。odbc_driver应为出现在/etc/odbcinst.ini中的ODBC驱动程序名称。例如
[ODBC Driver 13 for SQL Server] <--- USE THIS LINE OR SIMILAR DEPENDENDING ON WHICH VERSION YOU INSTALL Description=Microsoft ODBC Driver 13 for SQL Server Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.8.0 UsageCount=1
- 对于ODBC驱动程序,请确保在
config/database.php中将方括号([])替换为花括号({}) - 您必须使用
host、database、username、password、port属性来正确设置DSN字符串以进行ODBC连接 - 有关连接可以使用的任何附加参数,请参阅此处: https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/using-connection-string-keywords-with-sql-server-native-client
- 注意:不能在此处使用
Address、Addr、Database、Server、UID、PWD、Network、Net、DSN和Database属性,并且将忽略它们,因为它们已经按照Laravel的方式指定
- 注意:不能在此处使用