我有一个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无法连接的任何想法,或者有关我如何连接的任何示例都将非常感激。
答案 0 :(得分: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);
?>
希望能帮到别人。
答案 1 :(得分:1)
使用上面的php 5.3,Windows不再支持php_mssql
模块。
解决方案是从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,但必须使用mssqlnative
作为adodbtype。
与ip和端口的连接对我没有用,但ipaddress\\SERVERNAME
有效(参见examplecode)
<?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); ?>
答案 2 :(得分:0)
对于 PHP 7.4,您可以在此处下载驱动程序:
复制文件到你的php安装目录下。 在 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-server-ver15