我使用的是Apache服务器2.4版和PHP 8.2版。我想连接到SQL Server,但收到以下错误:
致命错误:未捕获的错误:调用D:\Apache24\htdocs\mcd\configsql.php中未定义的函数mssql_connect():6堆栈跟踪:在D:\Apache24\htdocs\mcd\configsql.php的第6行抛出#0 {main}
我已将此extension
添加到D:\Apache24\php\php.ini
:
extension=php_sqlsrv_82_ts_x64.dll
extension=php_pdo_sqlsrv_82_ts_x64.dll
字符串
该扩展也已正确安装,并显示在phpinfo()
中,如以下屏幕截图所示:https://prnt.sc/9UI5tQM6gFGl
我还使用了sqlsrv_connect()
函数,如下所示:
<?php
$myServer = "pcserver";
$myUser = "username";
$myPass = "password";
$myDB = "dbus";
$dbhandle = sqlsrv_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer");
$selected = sqlsrv_select_db($myDB, $dbhandle) or die("Couldn't open database $myDB");
型
但得到了下面的错误:
致命错误:未捕获的参数计数错误:sqlsrv_connect()最多需要2个参数,在D:\Apache24\htdocs\mcd\configsql.php中给定了3个参数:6堆栈跟踪:#0 D:\Apache24\htdocs\mcd\configsql.php(6):sqlsrv_connect('pcserver','用户名','密码')第6行上的D:\Apache24\htdocs\mcd\configsql.php中抛出了#1 {main}
我已经尝试了以下链接上的sqlsrv_connect
文档:https://www.php.net/manual/en/function.sqlsrv-connect.php。
我尝试使用具有Windows身份验证的连接,直到用户名和密码如下所示:
<?php
$serverName = "192.168.0.1"; //serverName\instanceName
$connectionInfo = array( "Database"=>"mydbname", "UID"=>"sa", "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));
}
?>
型
该代码未获得结果,但得到以下错误:https://prnt.sc/HQyaawaNh5x0
1条答案
按热度按时间uurity8g1#
函数
mssql_connect()
和mssql_select_db()
是旧的不支持的mssql
PHP扩展的一部分。如果你想使用PHP Driver for SQL Server连接到SQL Server示例,你需要使用sqlsrv_connect()
,没有sqlsrv_select_db()
函数作为PHP Driver for SQL Server的一部分,并且将函数名称中的前缀mssql
更改为sqlsrv
不是一个选项。sqlsrv_connect()
需要两个参数-$serverName
(一个字符串,指定要建立连接的服务器的名称)和$connectionInfo
(包含连接属性的关联数组)。使用中的数据库通常是第一个连接选项。如果要使用SQL身份验证进行连接,包括SQL Server登录名的用户名和密码作为附加连接选项,并确保您当前的SQL Server示例同时使用SQL和Windows身份验证:字符串