安装了macOS php sqlsrv驱动程序,但引发未知异常

时间:2018-07-26 19:15:55

标签: php sql-server macos-high-sierra

我正在开发PHP应用程序,现在正在使用GIT进行开发,并且我们都应该在本地运行我们开发的应用程序,同时连接到公司的SQL Server以获取数据。否则,我可以看到此SQL服务器没有任何问题(来自Navicat等)。

((我尝试先安装XAMPP,但从未看到过sqlsrv / pdo_sqlsrv驱动程序,还尝试过使用“干净”的apache安装来尝试这些指南,然后再进行了一些尝试,最后我进行了macOS的干净安装) ,再次从头开始制作了这些指南,现在就到了。

所以我按照这里描述的步骤
https://www.microsoft.com/en-us/sql-server/developer-get-started/php/mac/
和这里
https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-2017#installing-the-drivers-on-macos-el-capitan-sierra-and-high-sierra
这是完成我的任务的官方指南。除此之外,我还为Apache配置了SSL证书和PHP 7.2.8,其他一切工作正常。

phpinfo()甚至显示sqlsrv和pdo_sqlsrv加载正常。

然后启动我的应用程序,尝试打开与服务器的连接时会收到以下错误消息:

  

致命错误:sqlsrv_connect:捕获了未知异常。在第[line]行的[file]中

我正在运行sqlsrv和pdo_sqlsrv pecl软件包的5.3.0版本,因此我应该克服有关4.1.7或之前版本提到的问题。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

好,解决我自己的问题:

首先,我启用了sql_srv级别的日志记录。在php连接参数中,我添加了:

$connectionInfo = array(
    "Database" => $db,
    "Uid" => $user,
    "PWD" => $pass,
    "TraceOn" => true, // this line
    "TraceFile" => "sqlsrvtrace.log", // and this line
    "CharacterSet" => "UTF-8",
);
$conn = sqlsrv_connect($host, $connectionInfo);

检查此跟踪日志可了解到我的设置正在经历什么。就我而言,这与sql_srv从系统中选取的字符集或语言环境有关,因此我添加了适当的定义,问题得以解决。