conn))@mysql_close($this->conn);
}
function error_mysql($msg,$query=''){
//muestra el error
if($this->debug==1 && !empty($query)) $msg .= '
QUERY:
'.$query;
$this->enmarcar($msg);
$this->x();
die();
}
function enmarcar($str){
//para mostrar los errores dentro de un rectangulo
echo '',$str,'';
}
function f( $valor ){
/*
funcion para evitar ataques sql-injection, debes utilizarla cuando hagas querys
Ejemplo:
$query1 = new query("select * from usuarios where nombre='".$bd->f($_POST['nombre'])."' and password='".$bd->f($_POST['password'])."'",$bd);
*/
if(get_magic_quotes_gpc())
$valor = stripslashes($valor);
if( function_exists('mysql_real_escape_string') )
return mysql_real_escape_string( $valor );
else //per PHP inferior a 4.3.0
return addslashes( $valor );
}
function __destruct(){
//el destructor se ejecuta antes de cerrar la ejecucion y con esto cerramos la conexion a la base de datos
$this->x();
}
function __construct($debug=0)
{
//al llamarla conecta directametne a la base de datos
$this->debug = $debug;
$this->conn = @mysql_connect($this->servidor, $this->usuari, $this->clau) or $this->error_mysql(mysql_error());
mysql_select_db($this->nomBD) or $this->error_mysql(mysql_error());
}
}
class query{
var $bd;//conexion mysql, requerido para llamar funciones de la classe bd
var $q; //query introducida
var $n;//numero de resultados
var $v;//los resultados en una tabla de objetos
var $a;//numero de filas afectadas por la query
function query($query,$bd){
//constructor
$argcv = func_get_args();
call_user_func_array(array(&$this, '__construct'), $argcv);
}
function __construct($query,$bd)
{
//ejecuta la query y rellena las propiedades del objeto
$this->q = $query;
$this->bd = $bd;
$mysql_result = @mysql_query($query) or $this->bd->error_mysql(mysql_error(),$query);
$this->n = @mysql_num_rows($mysql_result);
$this->a = @mysql_affected_rows();
if($this->n)
for($i=0;$i<$this->n;$i++) $taula[$i] = @mysql_fetch_object($mysql_result);
else $taula = null;
$this->v = $taula;
if( $this->n > 0 ) mysql_free_result($mysql_result);
}
}
?>