php - 已解决找不到驱动程序 Debian SQL Server PHP
问题描述
我在 Debian 9.9 服务器和 PHP 7.4 上运行了 Laravel 安装。
我需要连接到远程 Windows 服务器上的 SQL Server 数据库。
我按照本指南安装 PHP 扩展: https ://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15#installing-the-驱动程序-on-debian-8-9-and-10
而这个安装 ODBC 驱动程序: https ://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view =sql-server-ver15
我也尝试重新安装 PHP。
但即使做了所有这些,我仍然无法连接到数据库并收到此错误:
找不到驱动程序
(SQL: select * from [table] where [column] = 123)
谢谢
编辑
这是 phpinfo() 结果中提到 PDO 的行
PDO support => enabled
PDO drivers => mysql, sqlsrv
pdo_sqlsrv
pdo_sqlsrv support => enabled
ExtensionVer => 5.8.0
Directive => Local Value => Master Value
sqlsrv.ClientBufferMaxKBSize => 10240 => 10240
sqlsrv.LogSeverity => 0 => 0
sqlsrv.LogSubsystems => 0 => 0
sqlsrv.SetLocaleInfo => 2 => 2
sqlsrv.WarningsReturnAsErrors => On => On
php --ini 显示启用了这两个扩展:
/etc/php/7.4/cli/conf.d/pdo_sqlsrv.ini,
/etc/php/7.4/cli/conf.d/sqlsrv.ini
PDO::getAvailableDrivers() 返回以下内容:
Array
(
[0] => mysql
[1] => sqlsrv
)
解决方案
请尝试以下操作,PDO.php
在某个目录中创建一个 php 文件(例如:)并将以下内容插入其中:
<?php
print_r(PDO::getAvailableDrivers());
?>
然后按如下方式运行此文件:
leo@alpha:~$ php PDO.php
终端应返回一组可用的 PDO 驱动程序。这样您就可以检查 PHP 是否真的启用了 SQL 驱动程序。就我而言:
Array
(
[0] => mysql
[1] => pgsql
[2] => sqlsrv
)
还要检查 Laravel 目录中的.env
文件是否正确配置了到 SQL 服务器的连接参数...
DB_CONNECTION=sqlsrv
DB_HOST=localhost
DB_PORT=1433
DB_DATABASE=project
DB_USERNAME=sa
DB_PASSWORD=password
我希望你能解决你的问题。
* 编辑 1 *
请尝试以下方法:
首先,在 Web 服务器的根目录中创建一个文件(ex: index.php)
,并在其中插入以下内容:
<?php
php_info();
?>
通过浏览器访问该文件,它应该返回所有正在使用的php settings
文件apache
。PDO
如果您已加载 SQL Server 驱动程序,请查看该部分。
推荐阅读
- http - 哪个 414 状态行是正确的?
- android - 当键盘向上或向下颤动时重建页面
- javascript - 在laravel中将两个选定的框onchange相加
- angular - 离子角度表单生成器没有获得表单控制值
- html - 为什么我的引导轮播滑块无法移动?
- laravel - Laravel 自动设置与预加载的反比关系
- jquery - 如何使用 Bootstrap 4 将主选项卡重定向到嵌套选项卡?
- class - Kotlin:如何在主函数中调用类属性并打印结果?
- javascript - 返回响应而不是 PHP 中的源代码
- typescript - 如何在 localhost 中打开静态网站,但使用 Vite 生成且不运行服务器?