提问人:Rudi 提问时间:11/16/2023 最后编辑:Rudi 更新时间:11/17/2023 访问量:95
致命错误:未捕获错误:从 Apache 连接到 SQL Server 时调用未定义的函数 mssql_connect()
Fatal error: Uncaught Error: Call to undefined function mssql_connect() when connecting from Apache to SQL Server
问:
我使用的是 Apache 服务器版本 2.4 和 PHP 版本 8.2。我想连接到 SQL Server,但收到以下错误:
致命错误:未捕获的错误:调用未定义的函数 mssql_connect() 在 D:\Apache24\htdocs\mcd\configsql.php:6 堆栈中 跟踪: #0 {main} 抛出 D:\Apache24\htdocs\mcd\configsql.php 上 6号线
我已将其添加到:extension
D:\Apache24\php\php.ini
extension=php_sqlsrv_82_ts_x64.dll
extension=php_pdo_sqlsrv_82_ts_x64.dll
该扩展也已正确安装,并显示在 中,如以下屏幕截图所示: https://prnt.sc/9UI5tQM6gFGlphpinfo()
我也使用过这样的功能: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");
但是出现以下错误:
致命错误:未捕获的 ArgumentCountError:sqlsrv_connect() 预期为 最多 2 个参数,其中 3 个在 D:\Apache24\htdocs\mcd\configsql.php:6 中给出 堆栈跟踪: #0 D:\Apache24\htdocs\mcd\configsql.php(6): sqlsrv_connect('pcserver', 'username', 'password') #1 {main} 扔进去 D:\Apache24\htdocs\mcd\configsql.php 上行 6
我尝试按照此链接上的文档进行操作:https://www.php.net/manual/en/function.sqlsrv-connect.php。sqlsrv_connect
我尝试使用带有 Windows 身份验证的连接,直到用户名和密码如下所示:
<?php
$serverName = "192.168.0.1"; //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));
}
?>
代码未获得结果,但收到以下错误:https://prnt.sc/QkQguS-xVVA9
答:
这些函数 和 是旧的和不受支持的 PHP 扩展的一部分。如果要使用 PHP Driver for SQL Server 连接到 SQL Server 实例,则需要使用 ,这将替换这两个函数。PHP Driver for SQL Server 中没有函数,并且不能更改函数名称中的前缀。mssql_connect()
mssql_select_db()
mssql
sqlsrv_connect()
sqlsrv_select_db()
mssql
sqlsrv
需要两个参数 - (指定要建立连接的服务器名称的字符串)和(包含连接属性的关联数组)。正在使用的数据库通常是第一个连接选项。如果要使用 SQL 身份验证进行连接,请将 SQL Server 登录名的用户名和密码作为其他连接选项,并确保当前 SQL Server 实例同时使用 SQL 和 Windows 身份验证:sqlsrv_connect()
$serverName
$connectionInfo
<?php
// Connect to SQL Server instance using SQL authentication
$myServer = "pcserver";
$myUser = "username";
$myPass = "password";
$myDB = "dbus";
$options = array(
"Database" => $myDB,
"UID" => $myUser,
"PWD" => $myPass
);
$dbhandle = sqlsrv_connect($myServer, $options) or die ("Couldn't connect to SQL Server");
// Connect to SQL Server instance using Windows authentication
$myServer = "pcserver";
$myUser = "username";
$myPass = "password";
$myDB = "dbus";
$options = array(
"Database" => $myDB
);
$dbhandle = sqlsrv_connect($myServer, $options) or die ("Couldn't connect to SQL Server");
?>
评论
sa
sqlsrv_connect()
sa
sa
sa
sa
sqlsrv_connect
评论
sqlsrv_select_db()