da die MySQL Extension zum standart bei PHP gehört und die Funktion im großen u. ganzen das was du da in 3 Zeilen machst - und noch mehr - in einer Funktion zusammenfasst
mal davon abgesehen hat man doch so wieso in ner einigermaßen guten Datenbankklasse sowas wie ne prepare Funktion die SQL Statements vorbereitet
Code: Alles auswählen
<?php
/** Bereitet einen SQL Befehl durch escapen der Benutzereingaben sicher vor um SQL Inejctions zu vermeiden
* @param string $SQL Ein SQL Statement
* @param array $secure_values Werte die für das Query vorbereitet werden sollen
* @exception MySQLException Verarbeitungsfehler
* @exception MySQLPrepareException Vorbereitungsfehler
*/
public function prepare($SQL, $secure_values)
{
if (!is_array($secure_values))
throw new MySQLException("param not an array");
if (!preg_match("/\?/", $SQL))
throw new MySQLPrepareException("no placeholder found");
$this->secure_values_fifo = $secure_values;
$this->prepared_string = preg_replace_callback("/\?/", array($this, "replace_secure_values_callback"), $SQL);
$this->secure_values_fifo = NULL;
}
/** Callback-Function die die Function prepare für jedes Element im Werte-Array aufrufen lässt
* @param array $treffer ist nötig, aber vollkommen unwichtig
* @exception MySQLPrepareException Vorbereitungsfehler
*/
protected function replace_secure_values_callback($treffer)
{
if (count($this->secure_values_fifo) < 1)
throw new MySQLPrepareException("not enough secure values");
return mysql_real_escape_string(array_shift($this->secure_values_fifo));
}
?>
und wenn dann noch davon ausgehen sollte das man mehrere Datenbank benutzen will/kann/möchte dann sollten sowieso die Klassen alle gleichnamige Methoden haben damit man das dann für jede Datenbank seperat handlen kann aber in 95% aller Fälle wird wohl immer ne MySQL im Spiel sein.