PHP sınıfı Veritabanı etkileşimi (PDO kullanarak)

0 Cevap php

Hey guys, ben Yönelimli PHP Nesne tamamen yeni kulüpler - Ben bazı dersler okudum, ama gerçekten PHP sınıfları ile bir veritabanı ile çalışma içine gider bir şey bulamıyorum.

Hızlı bir haber sonrası sınıfı - Ben basit bir şey yapmaya çalışıyorum. Ben veritabanı ile etkileşim deneyin zaman Ancak, ben bir hata alıyorum veritabanından, vb yazı olsun.

Ben PDO OO PHP ile gitmek için yol olduğunu okudum; Bu yazı ayrıntılı olarak bu amaçla, ben, bir veritabanı sınıfı geliştirdik: http://stackoverflow.com/questions/2047264/use-of-pdo-in-classes

class Database
{
    public $db;   // handle of the db connexion
    private static $dsn  = "mysql:host=localhost;dbname=test";
    private static $user = "admin";
    private static $pass = "root";
    private static $instance;

    public function __construct () 
    {
        $this->db = new PDO(self::$dsn,self::$user,self::$pass);
    }

    public static function getInstance()
    {
        if(!isset(self::$instance))
        {
            $object= __CLASS__;
            self::$instance=new $object;
        }
        return self::$instance;
    }

    // others global functions
}

Sonra bir haber yazı üzerine veri almak için, benim PHP sınıfta kullanmaya çalışmayın:

<?php
require_once "database.php";

class news extends Database
{
    private $title;
    private $author;
    private $date;
    private $content;
    private $category;


    function __construct($id)
    {
        $db = Database::getInstance();
        $query = $this->db->prepare("SELECT title, author, date, content, category FROM news WHERE id = :id LIMIT 1");
        $query->bindParam(":id", $this->id, PDO::PARAM_INT);
        if ($query->execute())
        {
            $result = $query->fetch(PDO::FETCH_OBJ);

            $this->set_title($result->title);
            $this->set_author($result->author);
            $this->set_date($result->date);
            $this->set_content($result->content);
            $this->set_category($result->category);
        }
    }
<...>
?>

Gerçi bu komut dosyasını çalıştırmak çalıştığınızda her zaman, ben aşağıdaki hatayı alıyorum:

Ölümcül hata: satır 16 / news.class.php olmayan bir nesne üzerinde () hazırlamak bir üye işlev çağrısı

Herhangi bir fikir?

0 Cevap