Php 如何解决此问题页面不工作HTTP错误500

Php 如何解决此问题页面不工作HTTP错误500,php,mysql,http,prepared-statement,Php,Mysql,Http,Prepared Statement,我怎样才能解决这个问题? 我正在尝试使用准备好的语句从数据库中获取记录。这适用于本地主机,但不适用于在线主机 db.php <?php class Db { private $host = "localhost"; private $user = "guru77"; private $pwd = "123456"; private $dbName = "testingProjects"; protected function connect(){ $dsn = 'mysql:h

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

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.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内部服务器错误是服务器抛出异常时的一般捕获所有错误。简单地说,500内部服务器错误是一个通用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";

?>


如果您可以获取服务器的错误日志数据,这将更有助于调试

您的主机提供商可能具有不同的
mysql
主机名,这将更有帮助。确保您使用正确的名称连接到mysql服务器。您没有使用准备好的语句。您应该检查服务器的错误日志。在进行任何查询之前,您还必须检查您的
连接
。您对此有何改进?谢谢。它现在正在工作。我没有在post_view.php中包含post.php文件。我登记了,很高兴能帮上忙
<?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";

?>