二次元爱好者 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 的文档,或联系它们的支持人员以寻求帮助。

    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现