Foros del Web » Programando para Internet » PHP »

Sql Files

Estas en el tema de Sql Files en el foro de PHP en Foros del Web. Modularizar las sql como patrones y pasando valores por parámetro a éstos para sustituir un campo de máscara por el valor nos puede ayudar a ...
  #1 (permalink)  
Antiguo 05/10/2004, 04:32
Avatar de carlosrdelmoral  
Fecha de Ingreso: agosto-2004
Mensajes: 149
Antigüedad: 19 años, 7 meses
Puntos: 0
Sql Files

Modularizar las sql como patrones y pasando valores por parámetro a éstos para sustituir un campo de máscara por el valor nos puede ayudar a migrar el código a procedimientos almacenados en el futuro.

filename.sql (& y # son máscaras en el sql file)
--
SELECT * FROM &tbl_Usuarios WHERE &cmp_Usuarios_usuario='#usuario';
--



código:

define("CORRECTO",1);
define("INCORRECTO",-1);
//$config_bd["tbl_Usuarios"]="usuarios";
//$config_bd["cmp_Usuarios_usuario"]="usuario";


//SELECT * FROM usuarios WHERE usuario='joel';

$tsql = ejecSql (
"filename.sql",
Array("usuario"),
Array("joel")
);



function ejecSql($sqlfile,$array_parametros,$array_valores)
{
return mergeSql (getSqlf($sqlfile),$array_parametros, $array_valores);
}


function mergeSql ( $strsql, // se le pasa la string , que es una sentencia sql.
$lista_parametros, // se le pasa en forma de array (lista) los campos #campo
$lista_valores ) // "" "" los valores para sustituir cada #campo con su valor
{
global $config_bd;

$r=count($lista_parametros);
if ($r==0) return INCORRECTO; //parametros sin valor;

// reemplazar parametros de $lista_parametros por valores de $lista_valores
for ($i=0; $i<$r; $i++)
$strsql = str_replace( "#".$lista_parametros[$i], $lista_valores[$i], $strsql );

// comprobar que todo parametro fue reemplazado
if (strpos($strsql,"#")) return -1; //INCORRECTO // faltaron parametros por reemplazar

// reemplazar marcas de configuracion segun $config_bd
reset ($config_bd);
while (list ($idconfig,$valueconfig) = each ($config_bd))
$strsql = str_replace( "&".$idconfig, $valueconfig, $strsql );

return $strsql;
}


function getSqlf( $strfilename )
{
return $strfile = getfile($strfilename);
}


=========
Cualquier aportación , modificación o mejora será bienvenida.

Por otro lado si quieres participar en el desarrollo de portales con mas programadores freelancer no dudes en ponerte en contacto.

[email protected]

Saludos,

Última edición por carlosrdelmoral; 05/10/2004 a las 04:42
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:41.