找不到课程

时间:2016-09-29 07:59:29

标签: php mysql

这是我得到的错误。

  

致命错误:班级'数据库'在第11行的C:\ wamp \ www \ midtermexam \ read.php中找不到

<?php
    include 'database.php';
    $id = null;
    if ( !empty($_GET['id'])) {
        $id = $_REQUEST['id'];
    }

    if ( null==$id ) {
        header("Location: index.php");
    } else {
        $pdo = Database::connect(); //HERE IS THE LINE PROBLEM
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "SELECT * FROM tbl_students where id = ?";
        $q = $pdo->prepare($sql);
        $q->execute(array($id));
        $data = $q->fetch(PDO::FETCH_ASSOC);
        Database::disconnect();
    }
?>

这是我的数据库文件database.php

<?php 
   $DB_HOST = 'localhost'; 
   $DB_USER = 'root'; 
   $DB_PASS = '';
   $DB_NAME = 'midtermexam'; 
   try{ 
       $DB_con = new PDO("mysql:host={$DB_HOST};
       dbname={$DB_NAME}",$DB_USER,$DB_P‌​ASS); 
       $DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
  } 
  catch(PDOException $e){
       echo $e->getMessage(); 
  } ?> 

2 个答案:

答案 0 :(得分:0)

试试这个,我没有测试过,但它应该相当接近。

 <?php 
# database.php
#############################
$DB_HOST = 'localhost'; 
$DB_USER = 'root'; 
$DB_PASS = ''; 
$DB_NAME = 'midtermexam'; 
try
{ 
    $DB_con = new PDO("mysql:host={$DB_HOST}; dbname={$DB_NAME}",$DB_USER,$DB_P‌​ASS); 
    $DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e)
{ 
    echo $e->getMessage(); 
} 

#############################
?>

<?php
# read.php
#############################
$id = null;
if ( !empty($_GET['id'])) {
  $id = $_REQUEST['id'];
}

if ( null==$id )
{
  header("Location: index.php");
} 
else 
{
  $sql = "SELECT * FROM tbl_students where id = ?";
  $q = $DB_con->prepare($sql);
  $q->execute(array($id));
  $data = $q->fetch(PDO::FETCH_ASSOC);
}

#############################
?>

据我所知,您使用数据库文件的名称作为类名,但是,您已在database.php文件中创建了数据库连接的实例$ DB_con。

这可能有助于进一步阅读。 Sitepoint PDO

如果你遇到任何问题,请给我们留言。

祝你好运,

的Blinky

答案 1 :(得分:-2)

第1步:      检查database.php中的数据库配置,确保已设置所有必需的参数并且所有值都正确。

第2步:   如果步骤1无法解决您的问题,请确保您的数据库服务器正在运行,您的网络仍然存在。

这是我的观点,希望它对您有用。