Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/08/2012, 01:50
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 1 mes
Puntos: 58
Respuesta: Problema con clase para conectar a la bd

Muchas gracias por los consejos. Me ha gustado especialmente lo de debug. En cuanto a lo de cerrar conexion es que como ni si quiera me conecta no llegué a ver lo de cerrar conexión. La consulta desde PHPmyAdmin funciona bien.

Voy a implementar vuestros consejos y os cuento. Muchas gracias.
¿sabéis de algún libro o tutorial para aprender programación de objetos?

En realidad las variables por defecto las quería definir en el constructor para luego cambiarlas desde funciones si es necesario. Pero cuando lo hago me lo marca como error el Netbeans:

Código PHP:
    function __construct() {
        var 
$usuario    'carlos';
        var 
$clave      'carlos';
        var 
$servidor   'localhost';            
        var 
$nombreBD   'pruebas2';
    } 
No se por qué eso no es correcto. Tenía entendido que el constructor es para definir variables sobretodo.

Edición 10:05 :

Al final he conseguido solucionarlo cambiando:
Código PHP:
return mysql_query$consulta$conexion) or die( mysql_error$conexion )); 

Por:
Código PHP:
$resultado mysql_query$consulta$conexion) or die( mysql_error$conexion ));
return 
$resultado

También cambié la definición de las variables:
Código PHP:
 var $usuario;
    var 
$clave;
    var 
$servidor;
    var 
$nombreBD;
    function 
__construct($c_usuario 'carlos'$c_clave 'carlos'$c_servidor 'localhost'$c_nombreBD='pruebas2') {
        
$this->usuario $c_usuario;
        
$this->clave $c_clave;
        
$this->servidor $c_servidor;
        
$this->nombreBD $c_nombreBD;
    } 
No se si es correcto o no pero he visto que en php.net definen así en algún ejemplo. Seguiré probando ahora con lo de debug aver si consigo implementarlo.

Edición a las 10:34 :

Al final me ha quedado así. Parece funcionar todo.
Código PHP:
class conexion_bd {
    var 
$usuario;
    var 
$clave;
    var 
$servidor;
    var 
$nombreBD;
    function 
__construct($c_usuario 'carlos'$c_clave 'carlos'$c_servidor 'localhost'$c_nombreBD='pruebas2') {
        
$this->usuario $c_usuario;
        
$this->clave $c_clave;
        
$this->servidor $c_servidor;
        
$this->nombreBD $c_nombreBD;
    }
    function 
ejecuta_consulta($consulta) {        
        
$conexion mysql_connect($this->servidor$this->usuario$this->clave) or die (mysql_error("$this->debug('Error al conectar'"));
        
mysql_select_db$this->nombreBD$conexion ) or die( mysql_error"$this->debug('Error al seleccionar base de datos'" ) ); 
        
$resultado mysql_query$consulta$conexion) or die( mysql_error"$this->debug('Error al ejecutar la consulta" ));
         
mysql_close();
        return 
$resultado;
    }
    function 
elige_bd($db) {
        
$this->nombreBD $db or die ("$this->debug('Error al seleccionar otra base de datos'");
    }
    function 
debug($error false){
    if(
$this->debug == true)
    if(
$error) echo $error;
    else return 
$this->debug;
    }
}
 
$consulta_bd = new conexion_bd(); 
 
$resultado $consulta_bd->ejecuta_consulta("SELECT * FROM persona");
 while (
$fila mysql_fetch_array($resultado)) 
 {
        echo 
$fila['nombre'];
        echo 
"<br />";
 } 

Última edición por alyciashape; 10/08/2012 a las 02:38