错误:从Apache连接到SQL Server时调用未定义的函数mssql_connect()

xghobddn  于 2023-11-21  发布在  Apache
关注(0)|答案(1)|浏览(126)

我使用的是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

  1. extension=php_sqlsrv_82_ts_x64.dll
  2. extension=php_pdo_sqlsrv_82_ts_x64.dll

字符串
该扩展也已正确安装,并显示在phpinfo()中,如以下屏幕截图所示:https://prnt.sc/9UI5tQM6gFGl
我还使用了sqlsrv_connect()函数,如下所示:

  1. <?php
  2. $myServer = "pcserver";
  3. $myUser = "username";
  4. $myPass = "password";
  5. $myDB = "dbus";
  6. $dbhandle = sqlsrv_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer");
  7. $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身份验证的连接,直到用户名和密码如下所示:

  1. <?php
  2. $serverName = "192.168.0.1"; //serverName\instanceName
  3. $connectionInfo = array( "Database"=>"mydbname", "UID"=>"sa", "PWD"=>"password");
  4. $conn = sqlsrv_connect( $serverName, $connectionInfo);
  5. if( $conn ) {
  6. echo "Connection established.<br />";
  7. }else{
  8. echo "Connection could not be established.<br />";
  9. die( print_r( sqlsrv_errors(), true));
  10. }
  11. ?>


该代码未获得结果,但得到以下错误:https://prnt.sc/HQyaawaNh5x0

uurity8g

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身份验证:

  1. <?php
  2. $myServer = "pcserver";
  3. $myUser = "username";
  4. $myPass = "password";
  5. $myDB = "dbus";
  6. $options = array(
  7. "Database" => $myDB,
  8. "UID" => $myUser,
  9. "PWD" => $myPass
  10. );
  11. $dbhandle = sqlsrv_connect($myServer, $options) or die("Couldn't connect to SQL Server");
  12. ?>

字符串

展开查看全部

相关问题