Folgender Code funktioniert leider nicht wie ich das gerne hätte.
<?php
// klasse definieren usw
public function query($query)
{
if (is_object($this->link)) {
// mysqli_real_escape_string() fuer alle zusaetzlichen Parameter
if (func_num_args() > 1) {
$parameter = func_get_args();
unset($parameter[0]); // $this->link loeschen
$query = vsprintf($query, array_map(array('this', 'escape_string', $parameter));
}
$this->result = mysqli_query($this->link, $query) or $this->fehler();
return $this->result;
}
}
public function escape_string($var)
{
return mysqli_real_escape_string($this->link, $var);
}
$var = "s'test";
$mysqli->query("SELECT * FROM tabelle WHERE id = '%s'", $var);
?>
Ausgabe:
Warning: array_map() [function.array-map]: The first argument, 'this::escape_string', should be either NULL or a valid callback in C:\...mysqli.class.php on line 72
Warning: vsprintf() [function.vsprintf]: Too few arguments in C:\...mysqli.class.php on line 72
Warning: mysqli_query() [function.mysqli-query]: Empty query in C:\...mysqli.class.php on line 75
Wie kommt es zu diesem Fehler? Ich komm leider nicht darauf