5

我正在尝试让 wamp php 与 MsSQL DB 进行通信,但我似乎无法使其工作。我在浏览器(Chrome)上收到的当前错误消息是:

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: (...) Couldn't connect to SQL Server
  1. ntwdblib.dll 是正确的版本 (2000.80.194.0)

  2. 我不能使用 php_sqlsrv(部署服务器仅限 linux,sqlsrv 仅限 Windows),尽管使用 sqlsrv 我可以得出访问信息正确的结论(服务器、用户、密码)

  3. 我已经降级回 wampserver 2.1e 和 php 5.3.1(有些人让它像这样工作)

  4. 当我重新启动 wamp 服务器时,apache_error.log 上没有错误

  5. 在我的机器上安装 freetds 会挂起 apache

  6. 远程机器成功使用php_mssql.dll(linux服务器)

我正在使用的代码:

<?php
$dbhandle = mssql_connect($ip,$user,$pass) or die("Couldn't connect to SQL Server on $ip"); 
$selected = mssql_select_db($dbname,$dbhandle) or die("Couldn't open database at SQL server: $ip");
?>

我现在要尝试一个 linux 虚拟机,但即使这样肯定会很痛苦(速度慢且功能少)。

我的系统:Windows 7、Wampserver 2.1e、PHP 5.3.1

我还能尝试什么?:(

4

4 回答 4

2

假设您已尝试从此处安装驱动程序/扩展:http: //www.microsoft.com/en-gb/download/details.aspx?id=20098 并且您已更改php.ini*AMP 堆栈的PHP文件夹..; 并将 mssql 扩展名放在php/ext文件夹中...

经过几个小时的查找,本指南成功地将我连接到 MS SQL 数据库。 http://webcheatsheet.com/php/connect_mssql_database.php

编辑:此外,我的连接类将 DB Uname PW 和 serverIP 作为构造函数参数,并且构造函数调用函数 setCon(),因此在创建对象时也是如此。然后我可以以 OOP 样式调用对连接对象的查询

    function setCon(){
    $conn = mssql_connect($this->server, $this->UName, $this->pw);
    if ($conn){
        echo "Connection established @ $this->server.$this->DB (Connected to MS SQL DB)\n";
    }
    else{
        echo "Connection could not be established.";
        die( print_r( sqlsrv_errors(), true));
    }

然后稍后需要访问创建的连接

function getCon(){
    return mssql_connect($this->server, $this->UName, $this->pw);
}
于 2013-12-17T22:10:37.123 回答
0

你安装了 MsSQL 吗?因为 WAMP 的 M 是 MySQL 而不是 MSSQL。

于 2013-02-28T17:06:55.560 回答
0

实际上,默认情况下 wampserver 不附带 php_mssql.dll,扩展是在 php_pdo_mssql 或 php_dblib 之上创建的。在 x64 wampserver 2 PHP 5.3.13 上测试

  • 使用 php_pdo_mssql

    1. 安装 wampserver
    2. 激活 php_pdo_mssql
    3. 激活 php_mssql
    4. 将 ntwdblib.dll 复制到 bin/php/php{version}/ext/ 和 bin/apache/{version}/bin
    5. 重启所有服务
  • 使用 php_dblib

    1. 而不是 php_pdo_mssql 激活 php_dblib。

警告不要同时激活 php_pdo_mssql 和 php_dblib。

在不同版本的 php wampserver 上,在 5.3.1 第一个解决方案对我有效,但在 5.3.13 第二个。

于 2014-01-29T13:16:53.220 回答
0

无法连接到服务器:(...) 无法连接到 SQL Server"

您是否在 PHP 中为 MS-SQL 安装了任何驱动程序模块?

此外,虚拟机不一定很慢而且没有特色——至少它可以工作:)

MDB2 或 PDO 可能最适合抽象数据库 I/O。

问:你能打开一个终端到 MS-SQL,例如 Telnet 吗?

(这至少可以解决任何类型的连接问题)。

你可能需要这个模块:PECL odbtp >= 1.1.1 (open database transport protocol)

extension=php_mssql.dll

^ 此外,如果此扩展已加载,请检查 phpinfo() 一次。

http://www.php.net/manual/en/mssql.installation.php

好吧 - 在 Windows 上安装 mySQL 不会有任何问题(以防万一)。

于 2013-02-28T17:08:55.107 回答