XAMPP/SQLSRV:无法在 PHPINFO() 中找到 Sqlsrv; - 来自连接的错误
P粉201448898
P粉201448898 2023-11-09 22:34:33
0
1
342

我正在尝试连接到我在 Linux VM 上托管的 SQL Server 数据库。我在我的开发 Windows 机器上运行 xampp,连接来自我正在构建的 php 站点。我想我需要使用 sqlsrv 来连接。我从 https://learn.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view= 下载了 dll sql-server-ver15&viewFallbackFrom=sql-server-2019

我已将必要的 dll 文件移至我的 xamppphpetc 目录。我还验证了 php.ini 文件中的扩展目录是 extension_dir="C:xamppphpext"

以下内容已添加到 php.ini 的 Dynamic Extensions 部分:

extension=php_sqlsrv_81_ts_x86.dll
extension=php_pdo_sqlsrv_81_ts_x86.dll
extension=php8ts.dll

我在网上找到了有关删除 php_ 前缀、删除 .dll 后缀、使用 ts 或非 ts、将所有文件移动到扩展目录、仅将上面列出的几个文件移动到目录中的信息,不包括 php8ts。 dll 等。我已经尝试了上面的每一个配置,无论是逻辑的还是不逻辑的。

这是我的网站的示例连接代码:

$conn = new PDO('sqlsrv:Server=my_server_ip\MSSQLSERVER;Database=dbname', 'username', 'password');
if ($conn === false) {
    echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);
    exit;
} else {
    echo "success";
}

我尝试了多个不同的连接示例。通过上面的操作,我收到此错误:

致命错误:未捕获的 PDOException:在 C:xampphtdocssiteindex.php:123 中找不到驱动程序 堆栈跟踪:#0 C:xampphtdocssiteindex.php(123): PDO ->__construct('sqlsrv:Server=my_server_ip', 'username', 'password') #1 {main} 在第 123 行的 C:xampphtdocssiteindex.php 中抛出

从这里我逻辑上认为好吧,让我们通过回显来检查 phpinfo(); 。列表中的任何位置都没有列出 sqlsrv 或 PDO 变体的任何内容。即使在sqlsrv的页面上ctrl+f,也只能发现上面的错误。

我已验证已安装 ODBC 驱动程序。

我尝试过的其他事情是使用 sqlsrv_connect 而不是 PDO。我发现与我的 php 版本(8.1)有关的信息存在冲突,但我想无论如何还是要尝试一下。但是,当我遇到该变体时,我得到:

致命错误:调用未定义的函数 sqlsrv_connect()

对我来说,很明显我的 .dll 没有被识别或类似的东西。然而我一生都无法理解为什么。我已经验证所有内容都以管理员身份运行,多次重新启动 xampp,删除/重新下载 dll 等。

谁能指出我可能没有想到的任何明显问题?

P粉201448898
P粉201448898

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!