Leuk, maar er staan toch een paar punten van kritiek in.
* Magic methods zijn langzaaaaam. Soms zelfs een factor 30 langzamer dan gewone functies. Helemaal als je dan ook nog is call_user_func() gaat gebruiken terwijl je functies gewoon beschikbaar kunnen zijn.
Aangezien er gebruik word gemaakt van PHP5 is het veel beter gebruik te maken van een interface of abstract methods ipv er vanuit te gaan dat de functie bestaat.
[/quote] public function last_insert_id($history = null) {
if ($history !== null) {
$size = count($this->insert_id_history);
return $history < $size ? $this->insert_id_history[(int)$history] : 0;
} else if ($this->db_insert_id == null) {
return false;
} else if (($last_id = call_user_func($this->db_insert_id, $this->link)) == 0) {
return $this->last_insert_id(0);
} else {
return $last_id;
}
}[/quote]
Is dit een grap? Je roep een functie aan om te kijken of het 0 is en roept dan vervolgens ZICH ZELF aan met 0 zodat hij 0 teruggeeft! WTF?!?!?! DIT IS TE DOM VOOR WOORDEN!
"print $format."\nQuery not accepted.\n";"
Zeker nooit gehoord van excepties en normale fouthandeling.
"if (in_array($statement, array("select", "show")) == false) {"
Hiermee worden statements als EXECUTE, START TRANSACTION, WITH (Common Table Expression) uitgesloten en PostgreSQL ondersteund meerdere statements achter elkaar (oeps!).
"print "Dropped query that tried to change the database via a read-only database connection.\n";"
Nogmaals excepties en foutafhandeling, dit is goud voor een hacker! Hij weet nu dat ZIJN query dus niet mag maar wel word doorgelaten.
Wat dat betreft doet het ze naam dan eer aan.
"In legend, a banshee is a fairy woman who begins to wail if someone is about to die."