Php 空文件问题

Php 空文件问题,php,mysql,pdo,Php,Mysql,Pdo,重写:已解决 你好 我目前正在开发一个简单的应用程序,其中包含一个数据库、一组控制器、视图和一个模型类 我对控制器进行了编码,并直接插入了db连接 例如。 每个控制器方法都有自己的PDO来连接到特定的数据库+表 我重构了它,因为每个控制器有太多的活动PDO,所以我开始编写模型类 一个简短的信息:当控制器被调用时,模型类曾经被控制器访问过。 一旦构建了模型对象,它就可以通过整个控制器使用,您可以向它传递自定义请求。 例如,getUserById=>从当前控制器表中获取id为“xy”的用户 现在,我

重写:已解决

你好

我目前正在开发一个简单的应用程序,其中包含一个数据库、一组控制器、视图和一个模型类

我对控制器进行了编码,并直接插入了db连接

例如。 每个控制器方法都有自己的PDO来连接到特定的数据库+表

我重构了它,因为每个控制器有太多的活动PDO,所以我开始编写模型类

一个简短的信息:当控制器被调用时,模型类曾经被控制器访问过。 一旦构建了模型对象,它就可以通过整个控制器使用,您可以向它传递自定义请求。 例如,getUserById=>从当前控制器表中获取id为“xy”的用户

现在,我终于完成了模型类并将我的PDO类添加到模型中: 每次我想访问我的任何控制器时,我的FireFox都会问我在哪里保护空的“test.php”(test.php是我的索引文件)

重新启动Apache2/PHP/MySQL不起作用,如果我删除代码的某一部分,则不会出现错误,但这一部分是必不可少的

model.php

class Model extends db_pdo_adapter{
    public function __construct($name)
    {
        $name = strtolower($name);
        $this->dbh = parent::connect(Model::ATTR_HOST, Model::ATTR_USR, Model::ATTR_PASSWD, Model::ATTR_DB);
        $this->name = $name.'s';
        //$this->ATTR_TBL = $this->name;

    }

    public function __call($name,$values)
    {
        $string = preg_replace('/^get/','',$name);
        $string = strtolower($string);
        $by = preg_split('/by/',$string);
        $by = strtolower($by[1]);
        return $this->get($string, $by, $values); // when I remove this part no empty file is served.
    }

    public function get($item, $by, $conditions) // single item if is_no_array
    {
        if($item = preg_replace('/$s/','',$this->name))
        {
            $item = '*';
        }
        //if(count($conditions) <= 1)
        //{
            $query = 'SELECT ' . $item . ' FROM ' . $this->name . ' WHERE ' . $by . ' = :' . $by . '';
            $pname = ':'.$by;
        //}

        $this->dbh->getStatement($query);
        $this->dbh->bindParam($pname,$conditions[0]); // ->dbh-> also was missing
        $this->dbh->exec();
        return ($this->dbh->fetchAll());

    }
}
我发现了问题:

我必须用PDO适配器扩展模型类,我不知道为什么,但这就是问题所在。

我发现了问题:


我必须使用PDO适配器扩展模型类,我不知道为什么,但这就是问题所在。

很高兴听到您解决了这个问题。无需在标题中添加[已解决]。只需接受你自己的答案:)这要求问题必须是2天或更久,我已经在度假2天;)很高兴听到你解决了这个问题。无需在标题中添加[已解决]。只需接受你自己的答案:)这要求问题必须是2天或更久,我已经在度假2天;)
 header('Content-Type: text/html;');
$time_start = microtime(true);



 include_once('db/model.php');
 //include_once('village.php');
 //include_once('player.php');
 include_once('building.php');

//$village = Village::getVillage('12');
//$player = Player::getPlayer('423');
//$data = array('name' => 'peter','password' => 'nopasswd','email' => 'peter@hasnomail.org');
//$player->newPlayer($data);
//print_r($village->attr);
//print_r($player->playerObj);
//include('interface.phtml');
//var_dump($_SERVER);
//print_r($village);
//print_r($player);
echo '<br />';
var_dump(Building::getBuilding('321'));
class Building{
    private function __construct($id,$village = NULL)
    {
        $this->model = new Model(__CLASS__);
        $model = $this->model;

        $this->buildingObj = $model->getBuildingById($id);
    }

    public function getBuilding($id,$village = NULL)
    {
        return (new Building($id));
    }
}