php - 无法连接到 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");
?>
解决方案
在 PHP 启动时加载驱动程序 要在 PHP 启动 时加载 SQLSRV 驱动程序,首先将驱动程序文件移动到您的扩展目录中。然后,按照以下步骤操作:
- 要启用 SQLSRV 驱动程序,请修改 php.ini,将以下行添加到扩展部分,并根据需要更改文件名:
扩展=php_sqlsrv_72_ts.dll
在 Linux 上,如果您已经为您的发行版下载了预构建的二进制文件:
扩展=php_sqlsrv_72_nts.so
如果您已从源代码或使用 PECL 编译 SQLSRV 二进制文件,则它将被命名为 sqlsrv.so:
扩展=sqlsrv.so
- 要启用 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。
- 重新启动 Web 服务器。
推荐阅读
- php - 使用 Laravel Passport 在 Postman 中收到 400 错误请求
- javascript - 井字检查器
- mysql - DOTNET 5.0.3 DBContext 没有 FromSqlRaw 方法
- reactjs - 如何在新的 Storybook 组件上发送警报?
- reactjs - React TinyMce 未捕获错误:节点不能为空或未定义
- matlab - 如何固定变量的范围?
- html - 我正在尝试让我的表单使用(弹性盒)空间,但它在弹性盒中不起作用
- javascript - Angular:我无法显示使用 Base64 字符串创建的文件中的图像
- docker - Docker 容器部署在 Linux 环境中
- typescript - 将受限泛型类型作为参数和返回类型的函数