que utiliza una tabla de configuración con un nombre (config_name) y un valor (config_value). Incluso agrego un campo de ayuda para que los usuarios puedan ver a qué se destina el par nombre/valor o dónde se usa.
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;
Luego siguiente código php se recupera el valor de una clave, o devuelve una cadena vacía. Asume que $ db es una conexión de base de datos abierta. Todas las entradas están forzadas a minúsculas.
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;
}
Todo MySQL/PHP en este caso, pero el principio general se mantiene.
Wouldn ¿Será mejor que la capa de aplicación se encargue de esto? Podría ser solo un único archivo de texto donde puede leer/escribir pares de valores clave. ¿Hay alguna razón particular para usar las bases de datos? – cctan