我想连接Laravel(版本8)和SQL Server数据库(SQL Server 2008 R2)。
我已经完成了安装,并遵循了一些教程中的步骤,如following,其中我安装的版本适用于SQL Server 2008 R2,如this guide:
1.已安装Microsoft® ODBC驱动程序17 for SQL Server(因此我选择了版本17)
1.安装PHP驱动程序版本5.6采取2个文件,即php_pdo_sqlsrv_73_ts.dll
和php_sqlsrv_73_ts.dll
,我从here(我选择了版本5.6的基础上)
1.我把上面的两个文件放在C:\larragon\bin\php\php-7.3.9-Win32-VC15-x64\ext
中
1.我在php.ini
中启用了扩展,如下所示:extension=pdo_sqlsrv_73_ts
,extension=sqlsrv_73_ts
.成功,当我签入php.info
时,它显示pdo_sqlsrv
1.然后,我在Laravel的.env
上配置了数据库连接,如下所示(* 我已经用这个名称创建了一个数据库 *):
DB_CONNECTION=sqlsrv
DB_HOST=192.168.101.103:86
DB_PORT=1433
DB_DATABASE=testlaravel
DB_USERNAME=faisallocal
DB_PASSWORD=faisallocal
1.然后在终端上运行php artisan migrate
。
但我总是得到这样的错误:
[说明\数据库\查询异常
找不到驱动程序(SQL:从sys.sysobjects中选择 *,其中id =对象id(迁移)和x类型(“U”、“V”))
at C:\larragon\www\redeempointappapi\vendor\laravel\framework\src\Illuminate\Database\Connection.php:712 708//如果在尝试运行查询时发生异常,我们将格式化错误709//消息以包括与SQL的绑定,这将使该异常710//对开发人员更有帮助,而不仅仅是数据库的错误。711 catch(Exception $e){ 712 throw new QueryException(713 $query,$this-〉prepareBindings($bindings),$e 714);七一五七一六
1 C:\larragon\www\redeempointappapi\vendor\laravel\framework\src\Illuminate\数据库\连接器\连接器。php:70 PDF文件异常::(无法找到驱动程序)
2 C:\拉腊贡\www\redeempointappapi\供应商\拉腊维尔\框架\src\照明\数据库\连接器\连接器。php:70 PDO::__construct(“数据库目录:主机= 192. 168. 101. 103:86:1433;数据库名称=试验数据库;字符集=utf8”,“费萨尔本地”,“费萨尔本地”,[])]
我错过了什么?我在本地做了这个测试,我有不同版本的XAMPP和Laragon,但是如果我有不同的端口,不是也可以吗?
请帮助任何有经验和建议的人,我已经在这一点上停留了几个星期。
谢谢
2条答案
按热度按时间4nkexdtk1#
php_pdo_sqlsrv_73_ts.dll这取决于您的php版本
例如:php_pdo_sqlsrv_73_ts.dll用于php 7.3
在下一个链接中,您可以看到此信息。
https://learn.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-ver15
3gtaxfhh2#
所以这一切都是因为检测到不同版本的PHP和SQL Server驱动程序。
作为参考,我有3个本地服务器,即:
1.还有拉拉根。
出现的问题是,当我想使用Laragon服务器和开发应用程序时,我使用本地终端/命令提示符( 快捷方式:Windows + CMD*),则来自其他本地服务器的PHP版本将相互冲突。
当我运行一个Laravel命令,检查PHP版本,或者其他什么的时候,本地命令提示符会引导我到我已经安装的XAMPP版本,所以你在Laragon中安装的任何
.dll
或插件都不会被检测到!最后,我能够完成我的安装,并根据我想要的版本做了很多CMD命令,是如何使用内置的CMD/终端从Laragon(* 点击终端下Laragon应用程序 *)
从这个终端,您安装的所有
.dll
插件,以及您输入的所有cmd命令,将匹配您正在使用的Laragon版本,它们不会偏离到另一个本地服务器!:D