抽象类中的新pdo

问题描述 投票:0回答:1

大家好,这是我在这个着名且有用的网站上的第一个问题。我是PDO和对象php的新手。我也是法国人,所以我的英语并不完美。

这是一个简单的代码,但它不起作用。它出什么问题了 ?

Model.php

require_once('config.php');

abstract class Model
{
    protected static $db = null;

    public function __construct()
    {
        $this->connexion();
    }

    private function connexion()
    {
        $db_options = array(
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
        );

        if(is_null(self::$db))
        {
            try
            {
                self::$db = new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, $db_options);
            }
            catch (PDOException $e)
            {
                die("Erreur de connexion : " . $e->getMessage());
            }
        }
    }
}

homeModel.php

require_once('Model.php');

class HomeModel extends Model
{
    private $title;

    public function __construct()
    {
        $this->getTitle();
    }

    private function getTitle()
    {
        $sql = parent::$db->query("SELECT title FROM table");

        $sql->execute();

        $sql->fetchAll();

        $sql->closeCursor();
    }
}

在继承类中执行公共函数parent :: __ construct()时,我有这样的错误:解析错误:语法错误,意外的'::'(T_PAAMAYIM_NEKUDOTAYIM),期待在第10行的HomeModel.php中的'('

我将构造函数视为默认操作。因此,当子类调用主类时,我希望主类自动执行构造函数中定义的操作。

php pdo
1个回答
0
投票

你需要$ this-> getTitle();到一个财产

$this->title = $this->getTitle();

并且像上面提到的那样调用父构造函数

parent::__construct();
$this->title = $this->getTitle();
© www.soinside.com 2019 - 2024. All rights reserved.