【问题标题】:Can't connect to MS SqlServer using php无法使用 php 连接到 MS SqlServer
【发布时间】:2021-05-09 21:42:36
【问题描述】:

我正在尝试连接到使用 sqlserver 的外部数据库,但在尝试了许多选项后根本找不到一个有效的选项。

    $connattempt1 = odbc_connect("Driver={SQL Server Native Client 10.0};Server=XXX.XXX.XXX.XX;1433;Database=IDD",'username','password');
    $connattempt2  = new PDO('sqlsrv:Server=XXX.XXX.XXX.XX,1433;Database=IDD','username','password');
    $connattempt3  = sqlsrv_connect('XXX.XXX.XXX.XX', [
            "Database"      =>      IDD, 
            "UID"           =>      'username',
            "PWD"           =>      'password',
            "CharacterSet"  =>      "UTF-8"
        ]);

我将在几个 apache 服务器上运行相同的代码,所有这些服务器都在 php7 上。我正在寻找一种无需编辑所有服务器上的 php.ini 或导入外部库的连接方式。 有没有正确建立这种连接的标准方法? 也欢迎任何线索、手册、提示、链接,谢谢!

【问题讨论】:

  • 一个小提示 - 在第三次尝试中,您需要用引号将数据库名称括起来:"Database" => "IDD", 但是,您从这三个调用中的每一个都收到什么错误消息?
  • 您为什么使用 SQL Server Native Client 而不是 ODBC Driver for SQL Server? SQL Server Native Client has been deprecated 有一段时间了。
  • 另外,除非我记错了,SQL Server 2012+ 附带 SQLNCLI 11.0 版;因此,您使用的(SQLNCLI)版本不支持任何当前支持的 SQL Server 版本(包括扩展支持的版本)。我不知道您尝试连接到哪个版本的 SQL Server,但如果它是受支持的版本(2012+),那么您使用的驱动程序不太可能正确支持它。
  • @Zhorov 我正在调用未定义的函数 odbc_connect() (对所有其他函数以此类推)。在询问经理之后似乎只是我的 apache 问题。我检查了我们是否在其他实例上正确安装了这些库。我想我必须安装然后启用它们。他们没有附带基本的 xammp 安装,所以如果我在安装软件包后设法修复它,我会告诉你们所有人
  • @Mbotet 是的,您需要安装驱动程序(作为 PHP 扩展)。并且可能 PDO 方法应该是您的首选。

标签: php sql-server php-7


【解决方案1】:

一些 Xammp 安装不附带通用库,情况就是这样。 在检查了一些客户端的配置后,它似乎运行良好,只有我的本地机器缺少这个库。 这是我使用的库: https://pecl.php.net/package/sqlsrv/5.9.0/windows 这个网站是一个非常好的资源,可以找到您可能需要的任何 dll,所以我希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多