这是我得到的错误。
致命错误:班级'数据库'在第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_PASS);
$DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo $e->getMessage();
} ?>
答案 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_PASS);
$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无法解决您的问题,请确保您的数据库服务器正在运行,您的网络仍然存在。
这是我的观点,希望它对您有用。