buonasera!
sto realizzando un cms e per semplificare la vita agli sviluppatori dei futuri moduli, sto implementando un metodo, nella classe che gestisce il database, il quale non fa altro che impostare in automatico il suffisso delle tabelle mysql scelto in fase di installazione del cms
se quindi lo sviluppatore crea la query
dove il suffisso è pippocodice:select * from tabella where id=10
il metodo del cms non farà altro che restituire
A tal fine ho quindi realizzato il metodo che avendo già disponibile l' elenco delle tabelle nel database, non fa altro che verificare anche che i termini trovati tramite reg exp corrispondano realmente al nome di una tabella esistente.codice:select * from pippo_tabella where id=10
è corretto secondo voi ciò che ho scritto?
spero di essere stato abbastanza chiaro
![]()
Codice PHP:private function set_suffix($q_str){
$patterns=array(
'/into[\s][\`]?(.*)[\`]?[\s]/USmi',
'/from[\s][\`]?(.*)[\`]?[\s]/USmi',
'/join[\s][\`]?(.*)[\`]?[\s]/USmi',
'/[\,]?[\s](.*)as[\s]/Usmi'
);
foreach($patterns as $patt){
preg_match_all($patt,$q_str,$results);
if(isset($results[0]) && !empty($results[0])){
foreach ($results[0] as $r_key=>$res){
if(in_array($results[1][$r_key],$this->__tables)){
$block=$res;
$tag=$results[1][$r_key];
$rep=$this->__suffix.$tag;
$q_str=str_replace(
$block,
str_replace($tag,$rep,$block)
$q_str;
);
}
}
}
}
return $q_str;
}



Rispondi quotando
