首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure网站上为SQL Server提供ODBC驱动程序11

在Azure网站上为SQL Server提供ODBC驱动程序11
EN

Stack Overflow用户
提问于 2015-02-09 03:05:02
回答 1查看 2K关注 0票数 1

我有一个PHP5.5网站运行WordPress在Azure网站配置为运行64位IIS,数据库运行在MySQL。我希望将站点转换为在Azure中使用Server而不是MySQL。

我已经安装了WP数据库抽象插件,并遵循了它的设置说明。我选择使用sqlsrv驱动程序,所以我安装了用于SQL Server 3.1的PHP驱动程序并将它们添加到WordPress网站的一个文件夹中,并将它们配置为扩展。在测试页面上调用phpinfo()显示sqlsrv驱动程序已经加载到PHP中,并报告PHP是x86。

我还设置了数据库、用户和密码,并测试了我可以使用SQLCMD成功地连接到它。

用于Server 3.1的PHP驱动程序说明还要求“Server 11的Microsoft驱动程序11”。我下载了x64和x86版本,并从相关的Windows目录中尝试了DLL,并将它们添加到扩展目录中,同时为两种体系结构提供了PHP驱动程序,但两者都没有工作。

当试图从运行中的PHP站点连接到SQL数据库时,我只得到以下错误:

This extension requires the ODBC Driver 11 for SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712

与WordPress站点根目录相关的驱动程序的DLL文件如下:

  • ext\msodbcsql11.dll
  • ext\php_sqlsrv_55_nts.dll
  • ext\1033\msodbcsqlr11.rll

在应用程序设置的网站的Azure管理门户中,我有以下设置:

PHP_EXTENSIONS:ext\php_sqlsrv_55_nts.dll

我所能得出的结果是,我遗漏了ODBC驱动程序中的一些内容,或者我如何将它们提供给PHP驱动程序是不正确的。

有没有人知道我错过了什么,或者为什么这不起作用?

下面是我用来测试PHP中Server连接性的测试代码。

代码语言:javascript
复制
<?php
$serverName = "MYSERVER.database.windows.net,1433";
$connOptions = array("UID"=>"MYUSERNAME", "PWD"=>"MYPASSWORD");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn)) {
    foreach( $client_info as $key => $value) {
        echo $key.": ".$value."<br />";
    }
} else {
    echo "Error in retrieving client info.<br />";
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-09 18:45:44

最后,我并没有找到合适的解决方案,但事实证明,在PHP5.4中使用SQL Server的所有部分都已安装在Azure网站中。

我将PHP5.5降级为5.4,然后Server连接开始工作。

这不是一个好办法,但它让我找到了我想要的职位(大部分)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28402195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档