ugrás a tartalomhoz

func_get_args pass to sprintf

szabo.b.gabor · 2011. Május. 17. (K), 15.17
Sziasztok!

Az sprintf funkcionalitását szeretném kibővíteni annyival, hogy stringek esetén egy mysql escape is legyen nyomva a dolgokra. végeredményként egy biztonságos sql query-t szeretnék kapni.

gondoltam csinálok egy változó mennyiségű paramétert kezelő függvényt ugyanúgy, mint az sprintf, végigmegyek az argumentumokon elvégzem amit akarok, aztán áttolom az sprintf-nek.

no de hogy toljam át? ötletek?
 
1

közben meglett... vmi

szabo.b.gabor · 2011. Május. 17. (K), 15.30
közben meglett...
vmi ilyesmi

function squery(){
	$args=func_get_args();
	$query=array_shift($args);
	foreach($args as &$a){
		if(!is_numeric($a)){
			$a=$this->real_escape_string($a);
		}
	}
	array_unshift($args, $query);
	return call_user_func_array('sprintf',$args);
}
2

call_user_func_array

Poetro · 2011. Május. 17. (K), 15.34
function mysql_escape($query) {
  // Vegyük a kapott paramétereket.
  $args = func_get_args();
  // A query már megvan
  array_shift($args);
  // Escapeljük a bejövő adatokat
  $args = array_map('mysql_real_escape_string', $args);
  // Visszarakjuk a query-t.
  array_unshift($args, $query);
  // Meghívjuk az sprintf-t.
  return call_user_func_array('sprintf', $args);
}