Nesne olmayan üye işlev çağrısı, ancak nesne bu yani kendisi $ nedir?

0 Cevap php

Bir sorgu yanlış olursa ben hata günlüğü için PDO ve PDOStatement sınıflar için basit bir uzantısı var. İşte benim kod basitleştirilmiş:

class MyPDO extends PDO
{
    public function __construct($db)
    {
        try
        {
            parent::__construct('mysql:host=localhost;dbname=' . $db, $user, $pass);
            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
            $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('MyPDOStatement', array($this)));
        }
        catch(PDOException $e)
        {
            $this->error(array($e->getCode(), $e->getMessage(), '08006'));
        }
    }

    function query($query)
    {
        $stmt = parent::query($query);
        if ($stmt !== false)
            return $stmt;
        else
        {
            $this->error($this->errorInfo(), $query);
            return false;
        }
    }

    function error($info, $query = false)
    {
        // log error here
    }
}

Açıkçası, ben (hazırlamak üzerine yazılır) ve exec () yöntemleri ve deyim sınıfının execute () yöntemi de var. Bu (veya sorgu () yukarıdaki gibi) bir hata varsa, hepsi iyi çalışır. Yakalamak bulunan hat üzerinde hata: Sorun PDO veritabanına bağlanmak için başarısız olduğunda, ben "olmayan bir nesne üzerinde bir üye işlev hatası () Call PHP Ölümcül hata" olsun.

Ben yakalamak için () :: MyPDO ile yerine hatayı denedim, ama bu sadece hata bir şey yapmak değil gibi görünüyor. Ben sorunun ne olduğunu stumped.

0 Cevap