Aquí les dejo una clase para manejar conexiones a BD MySQL, y la dejo por 2 motivos:
1.- para que la use quien crea que es útil
2.- para que los expertos peacheperos de este foro me tiren algunas líneas para mejorarla en general y para permitir principalmente que pueda usarse con varios usuarios sin tener que pasarle todos los datos a la hora de la inicialización.
En fin, espero que les guste
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
Código PHP:
<?php
/*
BD v2 -> clase para manejo de conexiones y consultas a base de datos MySQL.
*/
# un poco de configuración
# ¿mostrar errores?
define('db_MOSTRAR_ERRORES', true);
# ¿salir si hay errores?: false para continuar.
define('db_SALIR_EN_ERROR', true);
# ¿mostrar la consulta al salir?
define('db_MOSTRAR_CONSULTA', true);
##### Usuario predeterminado
define('db_SERVIDOR', '');
define('db_USUARIO', '');
define('db_CONTRASENIA', '');
define('db_BASE', '');
if (!class_exists('BD')) {
class BD {
var $conex;
var $cons;
var $errConex;
var $errCons;
var $UltCons;
var $total;
function BD($base = db_BASE) {
$conectado = mysql_connect( db_SERVIDOR, db_USUARIO, db_CONTRASENIA );
if ($conectado === false) {
$this->errConex = "1 - No se pudo conectar al servidor: ".mysql_error();
}
else {
if (mysql_select_db($base, $conectado) === false) {
$this->errConex = "2 - No se pudo conectar a la base de datos especificada: ".mysql_error();
}
else {
$this->errConex = "0 - Conexión realizada correctamente";
$this->conex = $conectado;
}
}
if ($this->errConex[0] != '0') {
if (db_MOSTRAR_ERRORES) {
echo $this->errConex;
}
if (db_SALIR_EN_ERROR) {
exit;
}
}
}
function Consulta($cadena_consulta) {
$this->UltCons = $cadena_consulta;
if ($this->errConex{0} == '0') {
$res = mysql_query($cadena_consulta, $this->conex);
if ($res === false) {
$this->errCons = '1 - Error en la Consulta: '.mysql_error();
}
else {
$this->errCons = '0 - Consulta sin errores';
$this->cons = $res;
if (($res !== true) && ($res !== false) ) { # para que no lo calcule si no es necesario
$this->total = mysql_num_rows($res);
}
}
}
else {
$this->errCons = '2 - No se pudo realizar la consulta porque no hay conexiones activas';
}
if ($this->errCons[0] != '0') {
if (db_MOSTRAR_ERRORES) {
echo $this->errCons.'<p>';
}
if (db_MOSTRAR_CONSULTA) {
echo $this->UltCons;
}
if (db_SALIR_EN_ERROR) {
exit;
}
}
return (isset($this->cons)) ? $this->cons : $this->errCons;
}
function cambiaBase($nueva_base) {
if (mysql_select_db($nuevabase, $this->conex) === false) {
$this->errConex = '2 - No se pudo conectar a la base de datos especificada: '.mysql_error();
}
else {
$this->errConex = '0 - Conexión realizada correctamente';
}
}
function obtenerAsoc($apuntador = '') {
$apuntador = (empty($apuntador)) ? $this->cons : $apuntador;
return mysql_fetch_assoc($apuntador);
}
function obtenerReg($apuntador = '') {
$apuntador = (empty($apuntador)) ? $this->cons : $apuntador;
return mysql_fetch_row($apuntador);
}
function Liberar($resultado = '') {
$resultado = (empty($resultado)) ? $this->cons : $resultado;
return mysql_free_result($resultado);
}
}
}
?>
Saludos