【发布时间】:2020-05-11 21:19:13
【问题描述】:
我已将此代码上传到在线托管。我正面临这个自动加载器功能问题。 我已经在下面发布了我的所有代码和输出。请检查并帮助我。
这是我的数据库连接文件。 db.php
<?php
class Db {
private $host = "localhost";
private $user = "guru77";
private $pwd = "123456";
private $dbName = "testingProjects";
protected function connect(){
$dsn = 'mysql:host='.$this->host.';dbname='.$this->dbName;
$pdo = new PDO($dsn,$this->user,$this->pwd);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
return $pdo;
}
}
这是我的自动加载器文件
<?php
spl_autoload_register('myAutoLoader');
function myAutoLoader($className){
$extension = ".php";
$fullPath = $className . $extension;
include_once $fullPath;
}
?>
这是我的索引页 index.php
<?php
require_once('autoloader.php');
$obj = new Post_view();
$rows = $obj->show();
?>
<html>
<head>
</head>
<body>
<?php foreach($rows as $row){
echo $row['title'];
}?>
</body>
</html>
post_view.php
<?php
require_once('post.php');
class Post_view extends Post{
public function show(){
$results = $this->showAll();
return $results;
}
}
?>
post.php
<?php
include_once('db.php');
class Post extends Db{
protected function showAll(){
$sql = "SELECT * FROM posts";
$stmt = $this->connect()->query($sql);
$results = $stmt->fetchAll();
return $results;
}
}
?>
这是我的 error_log 文件。这是我得到的错误。我知道我的自动加载功能有问题,但我没有弄清楚。 错误日志
【问题讨论】:
-
????:“看起来您正在编写自己的 ORM。您是否考虑过使用已经编写、测试和广泛支持的 ORM,例如 RedBeanPHP、Doctrine、@987654325 @ 或Eloquent?”
-
这个错误到底有没有解决?
-
????????请在此处以纯文本形式发布代码、错误、示例数据或文本输出,而不是难以阅读、无法复制粘贴以帮助测试代码或在答案中使用的图像,并且对依赖的人构成障碍在屏幕阅读器上。您可以编辑问题以在问题正文中添加代码。为了便于格式化,请使用
{}按钮标记代码块,或使用四个空格缩进以获得相同的效果。 屏幕截图的内容无法搜索、作为代码运行或复制和编辑以创建解决方案。一般 500 错误的屏幕截图只是占用空间。 -
此错误是标准的“找不到文件”错误。检查那条路径。必要时更正。你确定你的自动加载器叫
autoloader.php吗?你没有在你的问题中指定,但是当你require_once它时你会假设。 -
我已经把上面所有的代码都贴出来了。我只是把图片放到输出和日志文件里