Uso una tabella di configurazione con un nome (nome_config) e un valore (valore_config). Aggiungo persino un campo di aiuto in modo che gli utenti possano vedere a cosa serve la coppia nome/valore, o dove è usata.
CREATE TABLE config (
config_id bigint unsigned NOT NULL auto_increment,
config_name varchar(128) NOT NULL,
config_value text NOT NULL,
config_help text COMMENT 'help',
PRIMARY KEY (config_id),
UNIQUE KEY ix_config_name (config_name),
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Quindi il seguente codice php recupera il valore di una chiave o restituisce una stringa vuota. Suppone che $ db sia una connessione di database aperta. Tutte le voci sono forzate in lettere minuscole.
function getConfigValue($name) {
$retval='';
$db = $this->db;
$sql = 'select config_value from config where LOWER(config_name)="'.strtolower($name).'"';
$result = $db->Query($sql);
if ($result) {
$row = $db->FetchAssoc($result);
$retval = $row['config_value'];
}
return $retval;
}
Tutti mysql/php in questo caso, ma il principio generale rimane.
Wouldn è meglio essere gestiti dal livello dell'applicazione? Potrebbe essere solo un singolo file di testo in cui è possibile leggere/scrivere coppie di valori chiave. C'è una ragione particolare per usare i database? – cctan