错误使用sqlsrv_connect()
问题描述:
我是相当新的,当使用PHP连接到SQL数据库和我有,我收到此错误消息的问题连接到SQL数据源,当试图通过连接到数据库sqlsrv_connect()
:错误使用sqlsrv_connect()
[微软] [ODBC驱动程序管理器]数据源名称找不到和未指定默认驱动程序
我已经按照说明操作found here,并放置在此延伸; php_sqlsrv_53_nts.dll
,进入php.ini
文件。 Phpinfo()
显示sqlsrv
在Web服务器上启用,但在尝试连接到数据源时仍然收到相同的错误。
下面是我使用的代码:
$db_server = 'tcp:192.168.0.1';
$db_credentials = array('UID' => 'Domain\Username', //SQL Server UID
'PWD' => 'Password', //SQL PW
'Database' => 'ThisDatabase', //Name of the database
'CharacterSet' => 'UTF-8',
'ConnectionPooling' => 'False',
'LoginTimeout' => 60); //Number of Seconds before fail
$db_connect = sqlsrv_connect($db_server, $db_credentials);
//Check the connection to the SQL Database to see if it's valid or else display errors.
if ($db_connect === false) {
die(print_r(sqlsrv_errors(), true));
} else {
echo "Success: Connected to database.";
};
我完全难倒,所以任何帮助将是有益的!
答
正如@Terminus所建议的,在Web服务器上安装驱动程序SQL Server
或SQL Native Client
可解决此问题。
您是否为SQL Server或SQL Server Native Client安装了Microsoft ODBC驱动程序?事后重新启动Web服务器吗?请注意[sqlsrv_client_info](https://msdn.microsoft.com/en-us/library/cc296165.aspx)函数检查它是否可能无法正常工作,如果尚未打开连接。 – Terminus
@Terminus我已经在SQL服务器上安装了'SQL Server Native Client 2012',并且还在Data Sources(ODBC)程序中设置了一个System DSN。网络服务器已重新启动,我也按照建议检查了'sqlsrv_client_info',并收到以下消息:“一个无效参数已传递给sqlsrv_client_info。” –
@Terminus看来我在错误的服务器上安装了SQL Server Native Client 2012驱动程序,我将它安装在SQL服务器上而不是Web服务器上。它正在工作,谢谢! –