Webstatt.org - Community seit 2006 - 2012 (2024?)

Klassen, MySQLi und mysqli_real_escape_string()

Avatar user-300
04.03.2006 14:53

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'zwinkern, $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 traurig

Avatar user-255
04.03.2006 15:00

Callbacks funzen nicht mit Methoden. traurig

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-300
04.03.2006 15:01

Original von user-255
Callbacks funzen nicht mit Methoden. traurig


Natürlich funktioniert das lächeln
http://php.benscom.com/manual/en/language.pseudo-types.php#language.types.callback

Avatar user-255
04.03.2006 15:30

Original von user-300Natürlich funktioniert das lächeln
http://php.benscom.com/manual/en/language.pseudo-types.php#language.types.callback

Man braucht aber immer noch eine normalsterbliche Hilfsfunktion - wieder mal typisch PHP-umständlich.. traurig

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-300
04.03.2006 15:33

Ja leider traurig


Es funktioniert, wenn ich array('klassenname', 'escape_string'zwinkern schreibe. =)