二次元爱好者 2021-05-12 17:06 采纳率: 0%
浏览 29

php连接mssql错误!

[unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmsodbcsql.17.dylib' : file not found

开发环境:

  • xampp
  • PHP Version 7.3.26
  • Microsoft PHP驱动程序 5.8 sqlsrv/pdo_sqlsrv
  • SQL Server 2014
  • macOS High Sierra

可以找得到 /usr/local/lib/libmsodbcsql.17.dylib ,权限也改为777了
 

$ ls -l /usr/local/lib/libmsodbcsql.17.dylib

lrwxr-xr-x  1 daemon  daemon  56  2 20 11:43 /usr/local/lib/libmsodbcsql.17.dylib -> ../Cellar/msodbcsql17/17.7.1.1/lib/libmsodbcsql.17.dylib

在命令行里使用
sqlcmd -S <server> -U <uid> -P <pwd>
或者
isql -v -k "Driver=ODBC Driver 17 for SQL Server;Server=<server>;UID=<uid>;PWD=<pwd>"
都可以连接到mssql,就是在项目中php中

$data = sqlsrv_connect('server_ip', array('Database' => 'DB_name', 'UID' => 'uid' , 'PWD' => 'pwd'));
var_dump(sqlsrv_errors());

搞不清楚什么原因?

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-14 22:16
    关注

    根据您提供的信息,可以认为问题在于 php 的配置中没有正确设置 MSSQL 驱动所需的环境变量,导致连接 mssql 时出现路径错误。因此,您需要正确地设置环境变量来解决此问题。

    以下是可能的解决方案:

    1. 确认 msodbcsql17 驱动程序是否已正确安装并链接到正确的路径。您可以在终端中键入 odbcinst -j 来查找正确的路径,然后将其设置到环境变量中。

    2. 如果您已经安装了 Microsoft PHP 驱动程序 5.8,您可以尝试在 PHP 的配置文件 php.ini 中添加如下两行,以启用 MSSQL 驱动程序:

    extension=php_sqlsrv_56_ts.dll
    extension=php_pdo_sqlsrv_56_ts.dll
    

    请注意,这只在安装了相应的 PHP 驱动程序并将其添加到 PHP 的路径中时才有效。

    1. 您还可以尝试在 PHP 代码中指定驱动程序的绝对路径,例如:
    $data = sqlsrv_connect('server_ip', array('Database' => 'DB_name', 'UID' => 'uid' , 'PWD' => 'pwd', 'Driver' => '/usr/local/lib/libmsodbcsql.17.dylib'));
    

    这将手动指定驱动程序的路径,以便让 PHP 找到正确的驱动程序。

    希望这些解决方案能够解决您的问题。如果没有,您可能需要进一步查看 PHP 和 MSSQL 的文档,或联系它们的支持人员以寻求帮助。

    评论

报告相同问题?

悬赏问题

  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上