我的数据库类中有一个 PDO 连接,最近我一直将它用作其他类的扩展,即class Users extends Database
这允许我始终保持数据库连接,而不必在我的用户类中具有函数。
但是有人指出我不应该这样做是不好的做法,为什么这是不好的做法?以及如何在不扩展的情况下连接到我的用户类中的数据库类?
目前我在我的viewall()
函数中调用了数据库我试图把它放在一个__construct()
函数中但是它坚持有参数
我已经尝试了以下代码,但是我收到如下错误消息:
Fatal error: Call to undefined method Database::prepare() in E:\xampp\htdocs\attendance\class.Register.php on line 13
关于如何调用我的数据库的任何想法?
这是我的代码:
类.Connect.php
<?php
// Database connection PDO
class Database {
public function __construct() {
// Connection information
$host = 'localhost';
$dbname = 'attendance';
$user = 'root';
$pass = '';
// Attempt DB connection
try
{
$this->pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo 'Successfully connected to the database!';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function __destruct()
{
// Disconnect from DB
$this->pdo = null;
//echo 'Successfully disconnected from the database!';
}
}
?>
类.Register.php
<?php
require 'class.Connect.php';
class Register {
public function viewall() {
$pdo = new Database();
$stmt = $pdo->prepare('SELECT * FROM users');
$stmt->execute();
$stmt->fetch();
}
}
$run = new Register();
$run->viewall();
?>