我试图连接PHP 5.3.5到MS Sql Server 2005.我正在使用Windows XP SP3。 我启用了也在phpinfo()中显示的sqlsrv函数。 我也在php.ini扩展中做了一些修改,但是我一直在收到以下错误:
“数据库连接errorArray([0] => Array([0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] =>此扩展需要Microsoft SQL Server 2008本机客户端(SP1或更高版本)或Microsoft SQL Server 2008 R2本机客户端ODBC驱动程序与SQL Server进行通信,这两个ODBC驱动程序当前都没有安装,请访问以下URL以下载Microsoft SQL Server 2008 R2本机客户端ODBC x86驱动程序: http : //go.microsoft.com/fwlink/?LinkId = 163712 [message] =>此扩展需要Microsoft SQL Server 2008本机客户端(SP1或更高版本)或Microsoft SQL Server 2008 R2本机客户端ODBC驱动程序与SQL Server进行通信,当前没有安装这些ODBC驱动程序。访问以下URL以下载适用于x86的Microsoft SQL Server 2008 R2本机客户端ODBC驱动程序: http : //go.microsoft.com/fwlink/?LinkId = [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft] [ODB = C驱动程序pipe理器]数据源名称未find,没有指定默认驱动程序[message] => [Microsoft] [ODBC驱动程序pipe理器]未find数据源名称,未指定默认驱动程序))1“
我已经安装sqlncli.msi , SQLSRV20.exe和SQLSRV30.exe但我仍然收到相同的错误。
我的程序连接:
<?php $server = "Patrik/SQLEXPRESS"; $conInfo = array("Database"=>"ShoppingDetail","UID"=>"Pat1890","PWD"=>"Pat1890"); $con = sqlsrv_connect($server,$conInfo); if($con==false) { echo "Error Connecting to database<br>"; die (print_r(sqlsrv_errors())); } else { echo "Database connection is sucessfully eastablished"; } ?>
我认为我的编码没有问题。 我也启用TCP / IP,并使用IP地址,而不是servername,但问题仍然存在。
在php.ini中进行validation
延长= php_pdo_mssql.dll
和
延长= php_pdo_odbc.dll
并尝试与PDO
$server = 'host'; $database = 'database'; $username = 'username'; $password = 'password'; $db = new PDO('odbc:Driver={SQL Server}; Server=' . $server . '; Database=' . $database . '; Uid=' . $username . '; Pwd=' . $password . ';'); $query = $db->prepare('...'); $query->execute();
要使用sqlsrv_*函数,请将extension=php_sqlsrv_X_Y.dll添加到您的php.ini文件中,其中X表示您的PHP版本(在您的情况下为53 ),而Y是ts或nts是否安装了线程安全/非线程PHP的安全构build。 这些DLL应该都在你的PHP安装的ext文件夹中。