我正在尝试从另一台机器上的PHP代码连接到机器1上的SQL Server 2008。 我使用的是PHP 5.4.7,XAMPP 1.8.1,我已将sql server dll复制到PHP / ext文件夹中并修改了php.ini文件。
现在,当我尝试连接到SQL服务器时,我收到了以下错误。
数组([0] =>数组([0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [代码] => -49 [2] =>这扩展需要Microsoft SQL Server 2012 Native Client。访问以下URL以下载x86的Microsoft SQL Server 2012 Native Client ODBC驱动程序:http://go.microsoft.com/fwlink/?LinkId=163712 [message] =>此扩展需要Microsoft SQL Server 2012 Native Client。访问以下URL以下载x86的Microsoft SQL Server 2012 Native Client ODBC驱动程序:http://go.microsoft.com/fwlink/?LinkId=163712)[1] =>数组([0] => IM002 [SQLSTATE] => IM002 [1] = > 0 [code] => 0 [2] => [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序[message] => [Microsoft] [ODBC驱动程序管理器]数据源未找到名称且未指定默认驱动程序))
我的PHP代码如下 -
<?php
//phpinfo();
$server = "sql server\express,1433"; //serverName\instanceName, portNumber (default is 1433)
$uid="username";
$pwd="password";
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database"=>"rod_prd_tmart");
$conn = sqlsrv_connect( $server, $connectionInfo) ;
if($conn)
{
echo "Connection established.\n";
} else
{
echo "Connection could not be established in this text.\n";
die( print_r( sqlsrv_errors(), true));
}
sqlsrv_close( $conn);
?>
请帮我解决这个问题。感谢。
答案 0 :(得分:0)
考虑使用PDO以获得更大的灵活性:
//$pdo = new PDO("sqlsrv:Server=$hostname;Database=$dbname;", $username, $password); // works with proper driver for PHP.
$pdo = new PDO("odbc:Driver={SQL Server};Server=$hostname;Database=$dbname;", $username, $password); // works with proper driver for ODBC and PHP ODBC.
由于奇怪的编译器版本不兼容,我无法使第一行工作,但第二行在安装Microsoft ODBC Driver 11 for SQL Server之后工作正常
根据php.ini
,PHP版本5.3.0具有内置的ODBC支持,但仍然列出了活动的extension=php_pdo_odbc.dll