首页 > 解决方案 > 我该如何解决这个问题 页面不工作 HTTP ERROR 500

问题描述

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

数据库.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;
    }

}

?>

索引.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>

输出 - 在此处输入图像描述

标签: phpmysqlhttpprepared-statement

解决方案


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";

?>

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


推荐阅读