Código PHP:
<?php
class ConectarMySQL
{
//variables conexion con la base de datos / servidor
private $servidor;//nombre de host
private $base_de_dades; // nombre de la base de datos
private $usuari;// nombre de usuario base de datos
private $contrasenya; //contraseña acceso base de datos
//variables fin conexion con la base de datos / servidor
//conexion con el servidor
private $connect; //guarda la conexion con el MySQL host.
private $persistente; //boolean para saber si la conexion sera persistente o no.
//fin conexion con el servidor
//consultas base de datos
var $consulta;//guarda la consulta MySQL.
var $resultat;//guarda resultado de la consulta MySQL.
var $numfilas;//numero de filas de una consulta MySQL.
var $numcampos; //numero de capos de una consulta MySQL.
//fin consultas base de datos
//creacion consulta INSERT / UPDATE
private $array_key; //guarda el nombre de los campos MySQL.
private $array_valor; //guarda valores associados a los campos MySQL.
private $nombre_campo;//guarda los campos preparados para la consulta MySQL.
private $valor_compo; //guarda los valores preparados para la consulta MySQL.
//fin creacion consulta INSERT / UPDATE
//variables adicionales
private $error; //guarda el ultimo error generado.
//fin variables adicionales
function __construct($servidor = "", $usuari = "", $contrasenya = "", $base_de_dades = "", $persist = False)
{
//Damos valores a las variables de conexion (por defecto o no).
//Determinamos si la conexion sera persistente o no.
$this->servidor = (!empty($servidor))? $servidor : "localhost";
$this->usuari = (!empty($usuari))? $usuari : "root";
$this->contrasenya= (!empty($contrasenya))? $contrasenya : "";
$this->base_de_dades = (!empty($base_de_dades))? $base_de_dades : "forodescarga";
}
function Conectar()
{
//Establece la conexion con el servidor de la base de datos.
if($this->persistente)
{
//Esta conexion la cierra el servidor (mysql_close no funciona).
$this->connect = @mysql_pconnect($this->servidor, $this->usuari, $this->contrasenya);
}
else
{
$this->connect = @mysql_connect($this->servidor, $this->usuari, $this->contrasenya);
}
//Verifica si la conexion se ha echo con el servidor.
if(!$this->connect)
{
$this->error = mysql_error();
return(False);
}
else
{
if(!empty($this->base_de_dades)){$this->SeleccionarBaseDatos();}
return($this->connect);
}
}
//Selecciona la base de datos a la cual se tiene que conectar.
//Comprueba que se ha echo correctamente.
function SeleccionarBaseDatos($bd = "",$con = null)
{
if(!empty($bd)){$this->base_de_dades = $bd;}
if($con != null){$this->connect = $con;}
if(!@mysql_select_db($this->base_de_dades, $this->connect))
{
$this->error = mysql_error();
return(False);
}
else{return(true);}
}
//no hacer caso...
/*function AutoConectar($bool)
{
if($bool)
{
$this->ConectarMySQLServer(SERVER,USER,PASS,DB,False);
$this->Conectar();
}
}*/
//Envia una consulta al servidor de la base de datos.
//Compruba que la consulta se ha resulto con exito.
function Consulta($consulta_exe,$con = null)
{
//compruba que la conulsta enviada sea valida.
if(empty($consulta_exe))
{
$this->error = "La consulta a tramitar no es valida.<br />";
return(False);
}
//Comprueba que la consulta se ha echo.
$this->consulta = ($con != null)? @mysql_query($consulta_exe,$con) : @mysql_query($consulta_exe,$this->connect);
if(!$this->consulta)
{
$this->error = mysql_error();
return(False);
}
else
{
return($this->consulta);
}
}
function UltimoID()
{
//Devuelve el ultimo ID generado por un INSERT
//en un campo de auto incremento.
return(mysql_insert_id());
}
function VerDatos($ver_consulta,$tipo = "")
{
//Devuelve el resultado/las filas de la consola que se ha echo
//a la base de datos.
if(!$ver_consulta)
{
$this->error = "Parametro invalido enviado para mostrar los datos.";
return(False);
}
if($tipo == "MYSQL_ASSOC"){$this->resultat = @mysql_fetch_array($ver_consulta, MYSQL_ASSOC);}
if($tipo == "MYSQL_NUM"){$this->resultat = @mysql_fetch_array($ver_consulta, MYSQL_NUM);}
if($tipo == "MYSQL_BOTH"){$this->resultat = @mysql_fetch_array($ver_consulta, MYSQL_BOTH);}
if($tipo == ""){$this->resultat = @mysql_fetch_object($ver_consulta);}
//Comprueba si la consulta ha tenido existe.
if($this->resultat)
{
return ($this->resultat);
}
else
{
$this->error = mysql_error();
return(False);
}
}
function NumFilas($con = null)
{
//Devuelve el numero de filas de la consulta.
$con = ($con != null)? $con : $this->consulta;
$this->numfilas = mysql_num_rows($con);
return($this->numfilas);
}
function NumCampos($con = null)
{
//Devuelve el numero de campos de la consulta.
$con = ($con != null)? $con : $this->consulta;
$this->numcampos = mysql_num_fields($con);
return($this->numcampos);
}
function crearDB($db)
{
if(function_exists("mysql_create_db"))
{
if(!@mysql_create_db($db))
{
$this->error = mysql_error();
return(False);
}
else
{
return(True);
}
}
else
{
$sql = "CREATE DATABASE `".$db."`";
if(!$this->Consulta($sql)){return(False);}
else{return(True);}
}
}
function InsertarValoresSQL($array_insert,$campo_insert)
{
//Genera la consulta MySQL que se envia al servidor (INSERTAR).
//Se le pasa una array asociativa y convierte
//los key's de la array en los campos que corresponden
//a la base de datos y los valores respectivos a valores
//associados a cada campo.
$this->array_key = array_keys($array_insert);
$this->array_valor = $array_insert;
for($i = 0;$i < count($this->array_valor);$i++)
{
$this->array_valor[$this->array_key[$i]] = (is_numeric($this->array_valor[$this->array_key[$i]]))? $this->array_valor[$this->array_key[$i]] : "'".$this->limpiar($this->array_valor[$this->array_key[$i]])."'";
}
for($i = 0;$i < count($this->array_key);$i++)
{
$this->array_key[$i] = "`".$this->array_key[$i]."`";
}
$this->nombre_campo = implode(",",$this->array_key);
$this->valor_campo = implode(",",$this->array_valor);
$sql = "INSERT INTO `".$campo_insert."` (".$this->nombre_campo.")";
$sql .= " VALUES(".$this->valor_campo.");";
return($sql);
}
function ActualizarValoresSQL($nuevos_valores,$tabla,$where)
{
//Genera la consulta MySQL que se envia al servidor (ACTUALIZAR).
//Se le pasa una array asociativa y convierte
//los key's de la array en los campos que corresponden
//a la base de datos y los valores respectivos a valores
//associados a cada campo.
$this->array_key = array_keys($nuevos_valores);
$this->array_valor = $nuevos_valores;
for($ind = 0;$ind < count($this->array_key);$ind++)
{
$valores[$ind] = "`".$this->array_key[$ind]."` = '". $this->array_valor[$this->array_key[$ind]]."'";
}
$valores = implode(",",$valores);
$sql = "UPDATE `".$tabla."` SET ".$valores;
$sql .= " WHERE ".$where.";";
return($sql);
}
function VerError()
{
//Devuelve el ultimo error generado
//si este existe.
if(!empty($this->error))
{
return($this->error);
}
else
{
return(False);
}
}
function CerrarConexion()
{
//Cierra la conexion no-persistente con el servidor MySQL.
mysql_close($this->connect);
}
function LimpiarConsulta()
{
//Libera la memoria associoada a la variable donde se guarda la consulta.
mysql_free_result($this->consulta);
}
private function limpiar($variable)
{
//para escapar los caracteres especiales.
if(get_magic_quotes_gpc()){$variable = mysql_real_escape_string(stripslashes(trim($variable)));}
else{$variable = mysql_real_escape_string(trim($variable));}
return($variable);
}
function existTable($table)
{
//verifica si una tala existe.
//si es asi devuelve true sino false.
$bool = false;
$tb_list = mysql_list_tables($this->base_de_dades,$this->connect);
while(list($tb) = mysql_fetch_row($tb_list))
{
if($table == $tb)
{
$bool = true;
break;
}
}
return($bool);
}
function existDataBase($database)
{
//verifica si una base de datos existe.
//si es asi devuelve true sino false.
$bool = false;
$db_list = mysql_list_dbs($this->connect);
while(list($db) = mysql_fetch_row($db_list))
{
if($database == $db)
{
$bool = true;
break;
}
}
return($bool);
}
}
?>