当前位置: 首页 > 知识库问答 >
问题:

没有已知的此类主机--无法识别Localhost

沈英勋
2023-03-14

我是php新手。我在连接和使用PHP中的数据时遇到了问题。我在这个网站上仔细查看了一下,但没有找到太多信息。下面是错误和代码。

我正确输入了用户名和密码。我甚至创建了一个新的用户名和密码来确保。我不知道为什么它不能连接到我的本地主机。我希望看到任何关于可能错误的反馈,谢谢!

错误内容如下:

警告:PDO::_construct():php_network_getaddresses:getaddrinfo失败:未知此类主机。在第26行的C:\xampp\htdocs\website\Practice\mysqli\connection.inc.php中

致命错误:在C:\xampp\htdocs\网站\实践\mysqli\connection.inc.php:26堆栈跟踪:#0 C:\xampp\htdocs\网站\实践\mysqli\connection.inc.php:26堆栈跟踪:#0 C:\xampp\htdocs\网站\实践\mysqli\connection.inc.php(26): PDO-

connection.ini.php

function dbConnect($usertype, $connectiontype = 'mysqli') {
    $host = 'localhost';
    $db = 'student';
    if ($usertype == 'read') {
        $user = 'user';
        $pwd = 'pass';
    }

    elseif ($usertype == 'write') {
        $user = 'root';
        $pwd = 'password';
    }
    else {
        exit('Unrecognized connection type');
    }
    //Connection Code
    if ($connectionType == 'mysqli') {
        return new mysqli($host, $user, $pwd, $db) or die ('Cannot open database');
        } 
else {

        try {
            return new PDO('mysql:host=$host;dbname=$db, $user, $pwd');
        }
        catch(PDOExecption $e) {
            echo 'Cannot connect to database';
            exit;
        }
    }
}
?>

mysqli.php

?php
require_once('connection.inc.php');
$conn = dbConnect('read');
$sql = 'SELECT * FROM guestbook';

$result = $conn->query($sql)or die(mysqli_error());
$numRows = $result->num_rows;
?>
<!DOCTYPE html>
<html>
<p> A total of <?php
echo $numRows;
?>
records were found.</p>
</html>

共有2个答案

欧阳正德
2023-03-14
function dbConnect($usertype, $connectiontype = 'mysqli') {
$host = 'localhost';
$db = 'student';
if ($usertype == 'read') {
    $user = 'user';
    $pwd = 'pass';
}

elseif ($usertype == 'write') {
    $user = 'root';
    $pwd = 'password';
}
else {
    exit('Unrecognized connection type');
}
//Connection Code
if ($connectionType == 'mysqli') {
    return new mysqli($host, $user, $pwd, $db) or die ('Cannot open database');
    } 
else {

    try {
        return new PDO("mysql:host=$host;dbname=$db", $user, $pwd);
    }
    catch(PDOException $e) {
        echo 'Cannot connect to database';
        exit;
    }
}
}
?>

你用的是

 return new PDO('mysql:host=$host;dbname=$db, $user, $pwd');

但是您需要使用双引号来使用变量,如

return new PDO("mysql:host=$host;dbname=$db", $user, $pwd);

或者,您可以使用:

return new PDO('mysql:host='.$host.';dbname='.$db, $user, $pwd);

您可以在这里看到更多:Pdo连接和双引号内的变量

秦才良
2023-03-14

单引号括起来的字符串不会被解析,因此其中的变量不会被其值替换。在DSN字符串中使用双引号而不是单引号:

return new PDO("mysql:host=$host;dbname=$db, $user, $pwd");
 类似资料:
  • 问题内容: 我在某些目标域中遇到DNS问题。我正在使用(但其他功能存在相同问题)检索图像,但出现此错误: 我可以从命令提示符下ping或nslookup域,但由于某些原因,php会引发此错误。当我尝试使用其他域名时,一切都很好。但是上述域根本无法用PHP解决。我已经刷新了DNS,重新启动了Apache,但是仍然没有运气。 我尝试过: Windows 7,Apache 2.2 PHP 5.3.6 W

  • 我是新的PHP和当我试图连接我的数据库与PHP它显示错误 未捕获的PDO异常:PDO::_构造():php_网络_getaddresses:getaddrinfo失败:未知此类主机。在C:\xampp\htdocs\sql_php\pdo.php中:2堆栈跟踪:#0 C:\xampp\htdocs\sql_php\pdo.php(2):pdo- 可能的原因是什么?

  • 问题指出: 创建一个具有长度和宽度双属性的矩形类。默认构造函数应该将这些属性设置为1。提供计算矩形周长和面积的方法,以及两个数据字段的访问器和赋值器。length和width的mutator方法应该验证传入的数字是否大于0.0且小于20.0——如果不符合这些标准,就不应该更改字段的值。 在同一文件中编写一个驱动程序类来测试您的矩形类。它应该提示用户输入矩形的长度和宽度,然后打印出矩形的面积和周长。

  • 4.3 识别活跃的主机 尝试渗透测试之前,必须先识别在这个目标网络内活跃的主机。在一个目标网络内,最简单的方法将是执行ping命令。当然,它可能被一个主机拒绝,也可能被接收。本节将介绍使用Nmap工具识别活跃的主机。 4.3.1 网络映射器工具Nmap Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper)。该工具其基本功能有三个,一是探测一组主机是否在线;其

  • 如何从myBean创建部分表示 类MyBean{A,B,C} 我只想为A、B属性创建csv 使用下面的代码抛出异常 CsvMapper mapper=new CsvMapper();ObjectWriter=mapper。作者(图式); byte[]csv=writer.writeValueAsBytes(bean); 获得例外: JsonMapping异常:无法识别的列'C':已知列{"A","

  • 问题内容: 在我的用于读取RSS链接的Android应用程序中,出现此错误: java.net.UnknownHostException:无法解析主机“ example.com”;没有与主机名关联的地址。 在模拟器中,我可以通过浏览器连接到Google。请帮助我解决此问题。 问题答案: 您可能没有权限。尝试将它添加到您的文件中: 注:以上不 必须 的前右侧的标签,但这是把它的好/正确的位置。 注意