wamp上的php mssql扩展

时间:2013-02-28 17:04:27

标签: php sql-server database wamp wampserver

我正在尝试使用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服务器)

  7. 我正在使用的代码:

    <?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 个答案:

答案 0 :(得分:1)

假设您已尝试从此处安装驱动程序/扩展程序:http://www.microsoft.com/en-gb/download/details.aspx?id=20098 并且您已更改* AMP堆栈的php.ini文件夹中的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);
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

  

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

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

除了VM不一定缓慢且无特征 - 至少它可以工作:)

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

问:你能打开MS-SQL的终端,例如远程登录??

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

您可能需要此模块:PECL odbtp&gt; = 1.1.1(开放式数据库传输协议)

extension=php_mssql.dll

^,如果甚至加载此扩展名,也请结帐phpinfo()一次。

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

好吧 - 在Windows上安装mySQL不会有任何问题(如果有意义的话)。

答案 3 :(得分:0)

Actualy默认情况下,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秒。