我正在尝试使用php来与MsSQL DB进行通信,但我似乎无法使其正常工作。我在浏览器(Chrome)上收到的当前错误消息是:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: (...) Couldn't connect to SQL Server
ntwdblib.dll是正确的版本(2000.80.194.0)
我不能使用php_sqlsrv(部署服务器只是linux,sqlsrv只是windows),虽然从使用sqlsrv我可以得出结论,访问信息是正确的(服务器,用户,密码)
我已经降级回wampserver 2.1e& php 5.3.1(有些人让它像这样工作)
重新启动wamp服务器时,apache_error.log上没有错误
在我的机器上安装freetds会挂起apache
远程机器成功使用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
我还能尝试什么? :(
答案 0 :(得分:1)
假设您已尝试从此处安装驱动程序/扩展程序:http://www.microsoft.com/en-gb/download/details.aspx?id=20098
并且您已更改* AMP堆栈的php.ini
文件夹中的PHP
。并将mssql扩展名放在php/ext
文件夹...
编辑:此外我的连接类将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
使用php_dblib
警告不要同时激活php_pdo_mssql和php_dblib。
在不同版本的php wampserver上工作不同5.3.1第一个解决方案适用于我,但是在5.3.13秒。