这是我第一次将php与SQL Server集成。上下文中的SQL Server位于同一LAN上的另一台物理计算机上。我使用下面介绍的配置:
我正面临以下错误:
无法建立连接。
数组([0] =>数组([0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] =>这个 扩展需要Microsoft SQL Server 2012 Native Client。访问 以下URL下载Microsoft SQL Server 2012 Native x86的客户端ODBC驱动程序: http://go.microsoft.com/fwlink/?LinkId=163712 [message] =>这个 扩展需要Microsoft SQL Server 2012 Native Client。访问 以下URL下载Microsoft SQL Server 2012 Native x86的客户端ODBC驱动程序: http://go.microsoft.com/fwlink/?LinkId=163712)[1] =>数组([0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [微软] [ODBC 驱动程序管理器]未找到数据源名称且没有默认驱动程序 指定[message] => [Microsoft] [ODBC驱动程序管理器]数据源 未找到名称且未指定默认驱动程序))。
使用的代码如下:
<?php
$serverName = "TESTSERV\SQLEXPRESS"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbname", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
有人可以指导我在这里需要做什么才能成功连接到数据库吗?
答案 0 :(得分:2)
用于PHP的Microsoft SQL Server驱动程序需要安装Microsoft SQL Server 2012 Native Client,因为您可以在错误消息中阅读。只下载扩展dll是不够的。您可以通过官方System Requirements (Microsoft Drivers for PHP for SQL Server)了解更多信息。
版本3.2和3.1要求SQL Server使用Microsoft ODBC Driver 11(或更高版本)。要下载适用于SQL Server的PHP的Microsoft ODBC驱动程序11,请参阅SQL Server的Microsoft ODBC驱动程序11。
如果您使用的是SQLSRV驱动程序,sqlsrv_client_info将返回有关哪些版本的SQL Server Native Client正由Microsoft驱动程序用于PHP for SQL Server的信息。如果您使用的是PDO_SQLSRV驱动程序,则可以使用PDO :: getAttribute来发现版本。
https://www.microsoft.com/en-us/download/details.aspx?id=36434
下载,安装并尝试刷新测试页。