2

我有一个 linux 服务器,我正在尝试使用 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");

我已经通过 yum 等安装了 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 无法连接的想法,或任何关于我如何连接的示例都将不胜感激。

4

3 回答 3

6

我通过查看这个论坛解决了这个问题: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);
?> 

希望对其他人有所帮助。

于 2012-06-06T12:12:09.627 回答
2

使用 php 5.3 以上的php_mssqlmodul 不再支持 windows。

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

此安装程序会将 modul dll 文件提取到您的 php 扩展目录。

在你的 php ini 中包含正确的版本(例如,对于 php 5.3 ThreadSafe):

extension=php_sqlsrv_53_ts.dll  

在此之后您可以再次使用 adboDb,但您必须使用mssqlnativeadodbtype。与 ip 和 port 的连接对我不起作用,但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); ?>
于 2014-10-21T09:13:16.830 回答
0

对于 PHP 7.4,您可以在此处下载驱动程序:

https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

将文件复制到 php 安装的 ext 目录。然后在 php.ini 文件中添加扩展名,如下所示:

extension=php_pdo_sqlsrv_74_ts_x64
extension=php_sqlsrv_74_ts_x64

该扩展还需要安装 SQL Server 的 ODBC 驱动程序: https ://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-服务器-ver15

于 2021-06-24T07:56:43.273 回答