首页 > 解决方案 > 在它的子类中找不到 PHP 父数据库类

问题描述

我不断收到此错误,但我不知道为什么:

致命错误:未捕获错误:在 C:\xampp\htdocs\Login-system-oop\commands.php:2 中找不到类 'db' 堆栈跟踪:#0 C:\xampp\htdocs\Login-system-oop\index .php(9): include() #1 {main} 在第 2 行的 C:\xampp\htdocs\Login-system-oop\commands.php 中抛出

我的代码: db.php

<?php
class db {
private $server;
private $usern;
private $pass;
private $database;

protected function connect() {
  $this->server = "localhost";
  $this->usern = "root";
  $this->pass = "";
  $this->database = "logsysdboop";

  $conn = new mysqli($this->server, $this->usern, $this->pass, $this->database);
  return $conn;
  }
}
?>

命令.php

<?php
class commands extends db  {
public function display() {
  $sql = "Select * from users";
  $result = $this->connect()->query($sql);
  while ($row = $result->fetch_assoc()) {
    $data[] = $row;
  }
  foreach ($datas as $data) {
    echo $data['user']."<br>";
   }
  }
 }
?>

索引.php

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<?php
include 'commands.php';
$obj = new commands;
$obj->display();
?>
</body>
</html>

标签: php

解决方案


正如Nigel Ren已经建议的那样,您需要使用以下方法之一在 PHP 脚本顶部导入类:

  • require_once __DIR__ . '/db.php';
  • require __DIR__ . '/db.php';
  • include_once __DIR__ . '/db.php';
  • include __DIR__ . '/db.php';
  • use db;

而且,一旦将其固定更改$datas$data(因为$datas似乎是一个错字并且从未定义过),就像您的commands.php文件中的以下内容:

<?php
require __DIR__ . '/db.php';

class commands extends db  {
public function display() {
  $sql = "Select * from users";
  $result = $this->connect()->query($sql);
  while ($row = $result->fetch_assoc()) {
    $data[] = $row;
  }
  foreach ($data as $entery) {
    echo $entery['user']."<br>";
   }
  }
 }
?>

推荐阅读