2012-06-04 212 views
2

我有一个linux服务器,我试图用php adodb连接到MSSQL服务器。php adodb MSSQL连接

include('adodb5/adodb.inc.php'); 

$conn =& ADONewConnection('odbc_mssql'); 
$dsn = "Driver={SQL Server};Server=MSSERVER;Database=Northwind;"; 
$conn->Connect($dsn,'sa','password')or die("Unable to connect to server"); 

我已经安装过百胜等MSSQL,我知道该服务器可以连接到它,因为我已经试过如下:

$db = @mssql_connect("MSSERVER","sa","password") or die("Unable to connect to server"); 
mssql_select_db("Northwind"); 

// Do a simple query, select the version of 
// MSSQL and print it. 
$version = mssql_query('SELECT @@VERSION'); 
$row = mssql_fetch_array($version); 

echo $row[0]; 

// Clean up 
mssql_free_result($version); 

任何想法,为什么我的ADODB不会连接,或任何实例关于我如何连接将非常感激。

回答

5

我通过看这个论坛解决了这个:http://ourdatasolution.com/support/discussions.html?topic=4200.0

正确的代码是:

<?php 
include("adodb5/adodb.inc.php"); 
//create an instance of the ADO connection object 
$conn =&ADONewConnection ('mssql'); 
//define connection string, specify database driver 
$conn->Connect('xxx.xxx.x.xxx:1400', 'user', 'password', 'DbName'); 
//declare the SQL statement that will query the database 
$query = "select * from table"; 
$rs = $conn->execute($query); 
//execute the SQL statement and return records 
$arr = $rs->GetArray(); 
print_r($arr); 
?> 

希望帮助别人。

1

使用php 5.3以上版本的php_mssql modul不再支持windows。

解决方案是从http://www.microsoft.com/en-us/download/details.aspx?id=20098下载MicroSoft PHP驱动程序。

这个安装程序会将模块的dll文件解压到你的php扩展目录。

包括正确的版本在你PHP的INI(例如像这样的PHP 5.3 ThreadSafe的):

extension=php_sqlsrv_53_ts.dll 

此之后,你可以再次使用adboDb,但你必须使用mssqlnative作为adodbtype。 并与ip和端口连接没有为我工作,但ipaddress\\SERVERNAME工作(见示例代码)

<?php include("adodb5/adodb.inc.php"); 
//create an instance of the ADO connection object 
$conn =&ADONewConnection ('mssqlnative'); 
//define connection string, specify database driver 

// $conn->Connect('xxx.xxx.x.xxx:1400', 'user', 'password', 'DbName'); 
$conn->Connect('xxx.xxx.x.xxx\\SERVERNAME', 'user', 'password', 'DbName'); 

//declare the SQL statement that will query the database 
$query = "select * from table"; 
$rs = $conn->execute($query); 
//execute the SQL statement and return records 
$arr = $rs->GetArray(); 
print_r($arr); ?>