首页 > 解决方案 > 无法连接到 SQL Server 本地主机 PHP 5.6

问题描述

请帮助我。我在本地主机上访问 index.php 时收到此错误消息,我已经导入了数据库中的所有表。我正在使用 php 5.6 和 xampp 3.2.2。任何人都可以帮忙吗?

无法连接到 SQL 服务器

这是我在engine.php上的代码

引擎.php

 <?php 
class database_abc
  {
    var $server,
        $host,
        $user,
        $password,
        $database;

    function __construct($db_name = '', $db_password = '', $db_user = '', $db_host = 'localhost', $debug = '')
    {
      $this->host = $db_host;
      $this->user = $db_user;
      $this->password = $db_password;
      $this->database = $db_name;

      $this->open();
    }

    function open()
    {
      $this->server = @mysql_connect($this->host, $this->user, $this->password) or die("Couldn't connect to SQL server");
      @mysql_select_db($this->database, $this->server);
    }

    function query($sql, $debug = 0)
    {

      if($debug)
        echo "database/query :<strong>$sql</strong>:<br>\n";


      $result = @mysql_query($sql, $this->server);

      if( ($sql[0] == 'i') || ($sql[0] == 'I') )
        return mysql_insert_id();

      while( $row = @mysql_fetch_array($result) )
        $data[] = $row;


      if(isset($data)){
      return $data;
      }

    }

    function queryItem($sql, $debug = 0)
    {
      $result = $this->query($sql." LIMIT 0,1", $debug);
      return $result[0][0];
    }
  };


    $db = new database_abc("qwerty", "admin", "root", "localhost");

?>

标签: phpmysqldatabasexampplocalhost

解决方案


在 PHP 启动时加载驱动程序 要在 PHP 启动 时加载 SQLSRV 驱动程序,首先将驱动程序文件移动到您的扩展目录中。然后,按照以下步骤操作:

  1. 要启用 SQLSRV 驱动程序,请修改 php.ini,将以下行添加到扩展部分,并根据需要更改文件名:

扩展=php_sqlsrv_72_ts.dll

在 Linux 上,如果您已经为您的发行版下载了预构建的二进制文件:

扩展=php_sqlsrv_72_nts.so

如果您已从源代码或使用 PECL 编译 SQLSRV 二进制文件,则它将被命名为 sqlsrv.so:

扩展=sqlsrv.so

  1. 要启用 PDO_SQLSRV 驱动程序,PHP 数据对象 (PDO) 扩展必须可用,可以作为内置扩展,也可以作为动态加载的扩展。

在 Windows 上,预构建的 PHP 二进制文件带有内置的 PDO,因此无需修改 php.ini 来加载它。但是,如果您已经从源代码编译了 PHP 并指定了要构建的单独 PDO 扩展,它将被命名为 php_pdo.dll,并且您必须将它复制到您的扩展目录并将以下行添加到 php.ini:

扩展=php_pdo.dll

在 Linux 上,如果您使用系统的包管理器安装了 PHP,那么 PDO 可能会安装为名为 pdo.so 的动态加载扩展。PDO 扩展必须在 PDO_SQLSRV 扩展之前加载,否则加载将失败。扩展通常使用单独的 .ini 文件加载,这些文件在 php.ini 之后读取。因此,如果 pdo.so 通过自己的 .ini 文件加载,则需要在 PDO 之后单独加载 PDO_SQLSRV 驱动程序的文件。

要找出扩展特定的 .ini 文件所在的目录,请运行 php --ini 并记下 Scan for additional .ini files in: 下列出的目录。找到加载 pdo.so 的文件——它可能以数字为前缀,例如 10-pdo.ini。数字前缀表示 .ini 文件的加载顺序,而没有数字前缀的文件则按字母顺序加载。创建一个文件以加载名为 30-pdo_sqlsrv.ini(任何大于 pdo.ini 前缀的数字)或 pdo_sqlsrv.ini(如果 pdo.ini 没有以数字为前缀)的驱动程序文件,然后添加以下行,根据需要更改文件名:

扩展=php_pdo_sqlsrv_72_nts.so

与 SQLSRV 一样,如果您已从源代码或使用 PECL 编译 PDO_SQLSRV 二进制文件,则它将被命名为 pdo_sqlsrv.so:

扩展=pdo_sqlsrv.so

将此文件复制到包含其他 .ini 文件的目录。

如果您从源代码编译 PHP 并具有内置 PDO 支持,则不需要单独的 .ini 文件,您可以将上面的相应行添加到 php.ini。

  1. 重新启动 Web 服务器。

推荐阅读