我正在开发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或之前版本提到的问题。
有什么想法吗?
谢谢
答案 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从系统中选取的字符集或语言环境有关,因此我添加了适当的定义,问题得以解决。