我该如何解决此问题该页面无法正常工作 HTTP ERROR 500

How can I solve this issue The page is not working HTTP ERROR 500

我该如何解决这个问题? 我正在尝试使用准备好的语句从数据库中获取记录。这适用于本地主机,但不适用于在线托管。

db.php

<?php
class Db {
private $host = "localhost";
private $user = "guru77";
private $pwd  = "123456";
private $dbName = "testingProjects";

protected function connect(){
    $dsn = 'mysql:host='.$this->host.';dbname='.$this->dbName;
    $pdo = new PDO($dsn,$this->user,$this->pwd);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
    return $pdo;
}

}

post_view.php

<?php

class Post_view extends Post{

public function show(){
    $results = $this->showAll();
    return $results;
}

}

?>

post.php

<?php
class Post extends Db{


protected function  showAll(){
        $sql    = "SELECT * FROM posts";
        $stmt   = $this->connect()->query($sql);            
        $results = $stmt->fetchAll();
        return $results;
    }

}

?>

index.php

<?php
  require_once('db.php');
  require_once('post_view.php');
  require_once('post.php');

$obj = new Post_view();
  $rows = $obj->show();

    ?>

<html>
    <head>

    </head>
    <body>
        <?php foreach($rows as $row){

        echo $row['title'];

        }?>
    </body>
</html>

输出-

您可以使用

$pdo = new PDO('mysql: host=localhost; dbname12', 'myusername', 'password');

您的 DNS 记录中缺少一个分号:

$dsn = 'mysql:host='.$this->host.';dbname='.$this->dbName;

应该是这样的:

$dsn = '"mysql:host='.$this->host.';dbname='.$this->dbName . '"';

希望对您有所帮助。

500 Internal Server Error 是服务器抛出异常时的一般捕获所有错误。简单地说,500 Internal Server Error 是一个通用的 http 状态代码,表示网站服务器出现问题。

请检查以下内容, 检查您的在线托管服务、数据库凭据是否相同。(以下变量的值。)。在线主机中的软管可能与您的本地主机不同。

private $host = "localhost";
private $user = "guru77";
private $pwd  = "123456";
private $dbName = "testingProjects";

或者,您可以通过 运行 这个,

来检查您的数据库连接
<?php

$hostname= "localhost";
$db= "database";
$user= "user";
$pass= "password";

$checkConn= new mysqli($hostname, $user, $pass, $db);
// Check connection
if ($checkConn->connect_error) {
   die("Connection failed: " . $checkConn->connect_error);
}
  echo "Connected successfully";

?>

如果能得到服务器的错误日志数据就更好了,对调试有帮助