class myPDO extends PDO{
...
public function query($sql){
$this->last_query=$sql;
try
{
$stmt=parent::query($sql);
}
catch(PDOException $e)
{ $m="\t PDO Query Error: ".$e->getMessage().'<br />';
$m.="\t Last query: ".$this->last_query;
trigger_error($m,E_USER_ERROR);
}
if(!$stmt) // ovo se uvek javlja kad je error. bilo da je ermode 0,1,2
{ $m="\t PDO Query Error: <pre>".print_r(parent::errorInfo(),TRUE).'</pre><br />';
$m.="\t Last query: ".$this->last_query;
trigger_error($m,E_USER_ERROR);
}
return $stmt; //return PDOStatement object
} // end f query($sql)
}
$conn = new myPDO();
Onda shvatim da ni query nije staticna funkcija i da i ona mora da se zove $conn->query()! Jer ako napisemo PDO::query($sql), dobijemo sledeci error:
>>>Fatal error: Non-static method PDO::query() cannot be called statically in...
Ok, ako mora preko instance, zasto onda radi sa parent::query()?
Zasto parent::errorInfo() takodje radi? Lepo izbaci error array ako napravim sql gresku.
U dokumentaciji kaze da se parent koristi kad zelim da pristupim nekoj f koju overrajdujem... A ovde ispada da pristupam toj funkciji + dobijam $conn vrednost. Zasto?
$conn je za sada bio singleton, da li to ima neke veze? Sta ce se desiti kad/ako napravim 3-4 instance?
Ima li neko ko moze ovo da mi pojasni?