LINUX PDO_SQLSRV 找不到驱动程序无法连接

问题描述 投票:0回答:1

希望能帮到你。我正在运行 Linux Ubunto 22.04 和 PHP8.1。

我按照此页面安装了 sqlsrv 驱动程序:加载适用于 SQL Server 的 PHP 的 Microsoft 驱动程序

我仍然在 PDO 上收到“无法找到驱动程序”错误消息(“sqlsrv:server=

我必须通过下载预构建的驱动程序(软件包 Ubuntu2204-8.1)来安装驱动程序。我将驱动程序文件复制到 /usr/lib/php/20210902',基于: php -i | grep 扩展名目录

  • extension_dir => /usr/lib/php/20210902 => /usr/lib/php/20210902

文件“10-pdo.ini”已存在于 /etc/php/8.1/apache2/conf.d/ 中。

我按照指示创建了一个新文件“30-pdo-sqlsrv”,链接到“extension=php_pdo_sqlsrv_82_nts.so”。

我将以下内容添加到 php.ini 文件的底部:extension=php_sqlsrv_81_nts.so(我通过检查 phpinfo:/etc/php/8.1/apache2/php.ini 中的路径来检查是否编辑了正确的 php.ini 文件) ini)

我已经重新启动了我的服务器('sudo service apache2 restart'),并列出了我的 PHP 模块('php -m')。该列表显示,amonsgt 其他:PDO 和 pdo_sqlsrv。

PHPINFO 列出以下内容: 磷酸二氢钾 PDO 支持已启用 PDO 驱动程序 mysql pdo_mysql 已启用 MySQL 的 PDO 驱动程序 客户端API版本 mysqlnd 8.1.2-1ubuntu2.14 指令本地值主值 pdo_mysql.default_socket /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.sock

我看不到任何有关 pdo_sqlsrv 的信息

我创建了一些代码来测试连接:

    if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) 
{
    echo '!!We don\'t have mysqli!!!'. "<br>";
} 
else 
{
    echo 'msyqli function exists.'. "<br>";
}
$mysqli = null;

if (!extension_loaded('pdo')) 
{
    echo 'We don\'t have PDO!!!'. "<br>";
} 
else 
{
    echo 'PDO extension loaded.'. "<br>";
}



// pdo_sqlsrv pdo_sqlsrv
if (!function_exists('pdo_sqlsrv')) 
{
    echo '!!pdo_sqlsrv does not exist!!!'. "<br>";
} 
else 
{
    echo 'pdo_sqlsrv extension exists.'. "<br>";
}
if (!extension_loaded('pdo_sqlsrv')) 
{
    echo '!!pdo_sqlsrv not loaded!!!'. "<br>";
} 
else 
{
    echo 'pdo_sqlsrv extension loaded.'. "<br>";
}

try
{
$connection = new PDO("sqlsrv:server=$servername;Database=$database", $user, $password);


} 
catch (PDOException $e) 
{
    echo 'PDO Connection failed: ' . $e->getMessage(). "<br>";
}

我的代码输出以下内容:

  • msyqli 函数存在。
  • PDO 扩展已加载。
  • !!pdo_sqlsrv 不存在!!!
  • !!pdo_sqlsrv 未加载!!!
  • PDO 连接失败:找不到驱动程序

任何人都可以指出我可能错过的东西吗?为什么这不起作用?我的尝试是不是找错了方向?

php sql-server linux pdo
1个回答
0
投票

我最终重新安装了 sqlsrv 的驱动程序。

© www.soinside.com 2019 - 2024. All rights reserved.