Ciao a tutti,
devo richiamare la funzione sprintf ma non so in anticipo quanti parametri devo passargli,
siccome qualche giorno fa ho aperto una discussione simile e nonostante gli aiuti mi sono bloccato di nuovo faccio prima a spiegare cosa voglio fare.

Vorrei creare una funzione che mi cmponga tramite la sprintf una query eseguendo l'escape dei parametri passati.

esempio:
Codice PHP:

function escapequery()
{
        
// RECUPERO IL NUMERO DI ARGOMENTIO PASSATI 
        
$argomenti=func_num_args();
    
    
// CREO L'ARRAY CONTENENTE GLI ARGOMENTI
    
$arg_list=func_get_args();
    
    
$query=sprintf("%s",$arg_list[0]);
    
        
// ESEGUO L'ESCAPE DAL SECONDO VALORE FINO ALL'ULTIMO
    
for($i=1;$i<$argomenti;$i++)
    {
        
$arg_list[$i]=mysql_real_escape_string($arg_list[$i]);
    }
    
        
// IL PROBLEMA STA QUI QUANDO DEVO RIASSEMBLARE IL TUTTO
    
$query=sprintf($query,$arg_list[1]);

Se io richiamo la funzione come sotto, tutto funziona

Codice PHP:
$query=escapequery("SELECT * FROM tabella WHERE id='%s';",$id); 
Ma se voglio comporre una query che necessita di più parametri, e richiamassi la funzione a questo modo:
Codice PHP:

$query
=escapequery("SELECT * FROM tabella WHERE id='%s' AND nome='%s' AND numero='%s'",$id,$nome,numero); 

dovrei modificare la funzione
nella parte dove la query viene riassemblata,

ad esempio ci vorrebbe
Codice PHP:
$query=sprintf($query,$arg_list[1],$arg_list[2]); 
oppure
Codice PHP:
$query=sprintf($query,$arg_list[1],$arg_list[2],$arg_list[3],$arg_list[4]); 
Ho provato a passare l'array intero ad sprintf
Codice PHP:
$query=sprintf($arg_list[]); 
ma non funziona

Non so se sono stato chiaro, se ho scritto cavolate scusatemi non sono un esperto di programmazione.