如何使用 ODBC 和 PHP 8.1 将 Laravel 10 连接到远程 SQL Server 2000?

How can I connect Laravel 10 to a remote SQL Server 2000 using ODBC and PHP 8.1?

提问人:Jose 提问时间:5/19/2023 最后编辑:Dale KJose 更新时间:5/19/2023 访问量:245

问:

我正在使用 Laravel 10 处理一个 Web 项目,这需要我从远程 SQL Server 2000 获取数据。为了模拟这一点,我在 VirtualBox 上安装了 WinXP 和 SQL Server 2000。我使用的是 Windows 10 最新版本。我无法将 SQL Server 升级到较新版本,因为我客户端的主要应用程序依赖于该版本。在我尝试了所有方法之后,我仍然收到此错误:

SQLSTATE[IMSSP]:此扩展需要用于 SQL Server 的 Microsoft ODBC 驱动程序才能与 SQL Server 通信。访问以下 URL 以下载 ODBC Driver for SQL Server for x64: https://go.microsoft.com/fwlink/?LinkId=163712

我正在根据 Laravel 要求使用 PHP 8.1

我已经安装了 pdo_sqlsrvsqlsrv 扩展

extension=sqlsrv_81_ts_x64
extension=pdo_sqlsrv_81_ts_x64

phpinfo() 中的pdo_sqlsrv

phpinfo() 中的 sqlsrv

我已经在ODBC数据源管理器(XP-SP3)上添加了DSN

测试成功完成

CMIIW,但根据我阅读的文章,Windows 10 最新版本预装了 ODBC 驱动程序版本 10,这是 SQL Server 2000 唯一支持的 ODBC 驱动程序。因此,我没有安装任何更新的版本。

这是我用于Laravel项目的数据库配置。DB_HOST和DB_PORT是正确的,因为我已经使用 ODBC 数据源管理器测试了连接

'sqlsrv' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'search_path' => 'public',
        ],

我希望 Laravel 能够连接到我的 VirtualBox XP SQL Server 2000,并使我能够从表中获取数据。在这一点上,即使它有效,我也不确定哪个步骤是使其工作的步骤。

还是我应该降级 Laravel 版本?哪个 Laravel 版本以最少的设置支持这种连接?我是否应该安装另一个 ODBC 驱动程序版本,如果是,哪个版本?

任何信息将不胜感激。

sql-server odbc sql-server-2000 php-8.1 laravel-10

评论

1赞 Thom A 5/19/2023
“或者我应该降级Laravel版本?”为什么不将 SQL Server 的版本更新为过去十年中发布的版本,并且实际上受支持。大约 12 年前,SQL Server 2000 完全不受支持。如果客户拒绝升级,那么老实说,我认为你应该说你不能帮助他们

答: 暂无答案