猿问

我该如何解决这个问题 页面不工作 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>

输出 -

慕村225694
浏览 126回答 3
3回答

呼啦一阵风

500 Internal Server Error 是服务器抛出异常时的一般捕获所有错误。简而言之,500 Internal Server Error 是一个通用的http状态代码,表示网站服务器出现问题。请检查以下内容,检查您的在线托管服务、数据库凭据是否相同。(以下变量的值。)。在线主机中的软管可能与您的本地主机不同。private $host = "localhost";private $user = "guru77";private $pwd&nbsp; = "123456";private $dbName = "testingProjects";或者,您可以通过简单地运行它来检查您的数据库连接,<?php$hostname= "localhost";$db= "database";$user= "user";$pass= "password";$checkConn= new mysqli($hostname, $user, $pass, $db);// Check connectionif ($checkConn->connect_error) {&nbsp; &nbsp;die("Connection failed: " . $checkConn->connect_error);}&nbsp; echo "Connected successfully";?>如果能得到服务器的错误日志数据就更好了,这对调试很有帮助

慕工程0101907

您的 DNS 记录中缺少分号:$dsn&nbsp;=&nbsp;'mysql:host='.$this->host.';dbname='.$this->dbName;应该是这样的:$dsn&nbsp;=&nbsp;'"mysql:host='.$this->host.';dbname='.$this->dbName&nbsp;.&nbsp;'"';希望能帮助到你。

呼如林

您可以使用$pdo&nbsp;=&nbsp;new&nbsp;PDO('mysql:&nbsp;host=localhost;&nbsp;dbname12',&nbsp;'myusername',&nbsp;'password');
随时随地看视频慕课网APP
我要回答