【问题标题】:PHP won't connect to SQL ServerPHP 不会连接到 SQL Server
【发布时间】:2015-12-15 14:38:58
【问题描述】:

我正在运行 Windows 7(32 位)并安装了 Apache 2.2 和 PHP 5.3.1 线程安全。我单独安装了这些,因为我之前尝试过 WAMP 捆绑包并且不喜欢它,因为我发现它有问题。 apache 和 PHP 组件运行良好。我将 apache 端口设置为 7777,当我转到 URL http://localhost:7777/phpinfo.php 时,会出现 PHP 信息。我还可以创建一个基本的 PHP Hello World,它可以在浏览器中查看。我需要连接到 SQL Server 2005 实例来学习项目中的 PHP。我已经下载了 SQLSRV30.EXE 并提取了文件并将 DLL 的 php_pdo_sqlsrv_53_ts.dll 和 php_sqlsrv_53_ts.dll 放在文件夹 C:\PHP\ext 中,然后将以下条目放在 php.ini 文件中

extension=php_pdo_sqlsrv_53_ts.dll
extension=php_sqlsrv_53_ts.dll

重新启动 Apache 并且在 phpinfo 列表中它没有说明任何 SQL Server 属性。当我尝试运行浏览器状态下方的示例时 - 致命错误:调用未定义的函数 sqlsrv_connect()。我在 stackoverflow 上找到了几个示例,但它们涉及使用 wamp。请问我在这里做错了什么?

更新:我实际上为 PHP 安装了 NetBeans,并在 index.php 页面中使用下面相同的代码创建了一个新项目,当我运行它时,错误是一样的

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Check SQL Server Connection</title>
  </head>
  <body>

   <?php
    $serverName = "IT90334\SQLEXPRESS";
    $connectionInfo = array('Database' => 'AdventureWorks');
    $conn = sqlsrv_connect($serverName, $connectionInfo);

    if ($conn) {
       echo "Connection Established.<br />";
    } else {
       echo "Something went wrong while connecting to MSSQL.<br />";
       die(print_r(sqlsrv_errors(), true));
    }

    ?>
 </body>
</html>

【问题讨论】:

  • phpinfo() 列出的 php.ini 文件的路径是否与您更改的 ini 文件匹配?
  • 您的 PHP 错误日志中是否有任何启动错误?
  • @MattGibson 是的。我检查了列出的文件在 C:\PHP\php.ini 中,这就是我改变的那个
  • @danjam 当我取消注释 php.ini 中的参数 error_log = php_errors.log 时,apache web 服务器无法重新启动
  • @MattGibson 我已经取得了进展,并在浏览器中显示了已建立的连接,但现在尝试检索一些数据,netbeans 不喜欢“sqlsrv_query”并指出它是一个拼写错误的词。这是我的代码 $query = "SELECT Name FROM Production.Location" // 执行查询并返回记录 $result = sqlsrv_query($query)

标签: php apache sql-server-2005


【解决方案1】:

在另一个论坛上发现了一些东西,暗示 Microsoft 驱动程序 SQLSRV30.exe 对于我的 PHP 设置来说太熟悉了。我正在运行 Apache 2.2 和 PHP 5.3.1,因此发现 SQLSVR20.exe 驱动程序也与 PHP 5.3.1 兼容,因此下载 SQLSVR20 并将文件 php_pdo_sqlsrv_53_ts.dll 和 php_sqlsrv_53_ts.dll 替换为 php_pdo_sqlsrv_53_ts_vc6.dll 和 php_sqlsrv_53_ts_vc6.dll(MY PHP 设置也是在 vc6 附近)然后修改了 php.ini 参数。重新启动 Apache 后,这进一步推进了进程,但说我需要我找到并安装的 SQL Server 2008 R2 Native Client,然后 SQLSVR 列在 PHPInfo url 中并且连接正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多