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); } } ?>