PHP 父数据库类在其子类中找不到



我一直收到此错误,我不知道为什么:

致命错误:

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

我的代码:数据库.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>

只需使用 require_once("db.php"(; 在命令中.php 在扩展数据库类之前。此外,您将数据存储到数组$data并尝试从循环中的$datas中检索它,该循环再次未定义。

纠正以上,我认为你的代码会没问题。

正如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>";
}
}
}
?>

最新更新