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 />";
}