抽象类中的新pdo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类中的新pdo相关的知识,希望对你有一定的参考价值。

大家好,这是我在这个着名且有用的网站上的第一个问题。我是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中的'('

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

答案

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

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

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

parent::__construct();
$this->title = $this->getTitle();

以上是关于抽象类中的新pdo的主要内容,如果未能解决你的问题,请参考以下文章

抽象类中的依赖注入,ASP.NET Core

如何将 View 类中的代码片段移动到 OnAppearing() 方法?

片段 A 的列表视图中的片段 B 中的新列表视图,单击 A 的列表项

数据库抽象层PDO 8

初识PDO数据库抽象层

PHP中的PDO函数库