Bueno, aquí os traigo un aporte mio, decidí aprender POO y bueno, he hecho esto para mis proyectos, y he decidido publicarlo, es una classe bastante útil, he añadido una documentación bastante amplia, así que aprovecharla si quereis .
<?php
/*Totalmente creado por Jordi H. Castro, prohibido la reproduccion parcial i.o completa sin permiso previo*/
/*Classe de parametros del servidor y informacion*/
class sql
{
/**Creando las variables privadas para la classe*/
private $server;
private $user;
private $pass;
private $data;
/*Variables del enlace*/
var $link;
private $data_link;
/*Cargando los Objetos*/
function __construct(){
/*Asignando un valor de por defecto a las variables de la classe*/
$this->server='localhost';
$this->user='******';
$this->pass='******';
$this->data='DATABASE';
/*Estableciendo enlace y seleccion de base de datos con datos proporcionados*/
$this->link=mysql_connect($this->server, $this->user, $this->pass);
$this->data_link= mysql_select_db($this->data, $this->link);
}
/*Mostrar la configuracion Actual del enlace*/
public function mostrar_config_actual(){
echo '<b>Servidor:</b> '.$this->server.'<br />';
echo '<b>Usuario:</b> '.$this->user.'<br />';
echo '<b>Contrasenya:</b> '.$this->pass.'<br />';
echo '<b>Base de Datos (Origen):</b> '.$this->data.'<br />';
}
/*El estado del enlace devuelto en formato leible*/
public function estado_enlace(){
$stat =explode(' ', mysql_stat($this->link));
foreach($stat as $campo => $valor){
echo '<b>'.$campo.'</b> '.$valor.'<br />';
}
}
}
/*Trabajar con el servidor SQL*/
class sql_operaciones extends sql
{
function __construct(){
parent::__construct();
}
//////SELECCIONES/////////
public function seleccionar_valor_exacto($columna, $fila){
$consulta =mysql_result(mysql_query("SELECT $columna FROM $fila", $this->link), 0);
echo $consulta;
mysql_free_result($consulta);
mysql_close($this->link);
}
public function seleccionar_valor_condicion($columna, $fila, $condicion, $c_valor){
$consulta =mysql_result(mysql_query("SELECT $columna FROM $fila WHERE $condicion='".$c_valor."' ", $this->link), 0);
echo $consulta;
mysql_free_result($consulta);
mysql_close($this->link);
}
//////FIN DE SELECCIONES//////
//// INSERCIONES ////////
public function insertar_valor($columna, $tablas, $valores){
$consulta = "INSERT INTO $columna $tablas VALUES $valores";
mysql_query($consulta);
mysql_free_result($consulta);
mysql_close($this->link);
}
///// FIN DE INSERCIONES /////
///// ACTUALIZACIONES ///////
public function actualizar_tablas($columna, $fila, $valor){
$consulta ="UPDATE $columna SET $fila='".$valor."' ";
mysql_query($consulta);
mysql_free_result($consulta);
mysql_close($this->link);
}
public function actualizar_tablas_condicion($columna, $fila, $valor, $condicion, $c_valor){
$consulta ="UPDATE $columna SET $fila='".$valor."' WHERE $condicion='".$c_valor."' ";
mysql_query($consulta);
mysql_free_result($consulta);
mysql_close($this->link);
}
///// FIN DE ACTUALIZACIONES /////
/////BORRAR REGISTROS////////////
public function borrar_registro($columna, $condicion, $c_condicion){
$consulta ="DELETE FROM $columna WHERE $condicion='".$c_condicion."' ";
mysql_query($consulta);
mysql_free_result($consula);
mysql_clos($this->link);
}
///// FIN /////////////////////
}
//////////////////Construccion SQL y estado////////////////
/*$sql =new sql();*/
//Muestra Configuracion actual del servidor
/*$sql->mostrar_config_actual();*/
//Estado del enlace
/*$sql->estado_enlace();*/
/////////////////////Operaciones SQL///////////////////////
/*$dato =new sql_operaciones();*/
//Seleccionar Dato Exacto
/*$dato->seleccionar_valor_exacto('nombre', 'sistema');*/
//Seleccionar Dato Condicion
/*$dato->seleccionar_valor_condicion('nick', 'user', 'id', '1');*/
//Insertar Datos
/*$dato->insertar_valor('test', '(testit, testit2)', "('".$test."', '".$test2."')");*/
//Actualizar tablas masivamente
/*$dato->actualizar_tablas('sistema', 'nombre', 'SimpleForum');*/
//Actualizar valor concreto
/*$dato->actualizar_tablas_condicion('user', 'nick', 'blue', 'id', '1');*/
//Borrar Registro
/*$dato->borrar_registro('test', 'testit2', '0');*/
?>
EXPLICACIÓN
-Classe SQL
-> Contiene los parámetros del servidor, funciones para mostrar el estado del enlace, un poco englobalizado.
Funciones
-> editar_enlace($servidor, $usuario, $contraseña, $base de datos)
--> Con esta función puede editar los valores de por defecto (esta función es un poco inútil, simplemente estaba jugando un poco)
-> mostrar_config_actual()
--> Muestra los parámetros de conexión al servidor SQL actuales.
-> copyright()
--> Nada, como dice el nombre.
-Classe SQL_OPERACIONES
-> Las operaciones sql que podemos hacemer en el servidor sql con los parámetros de la anterior classe, va enlazado, funciones como insertar, actualizar, seleccionar
Funciones
->seleccionar_valor_exacto($campo, $fila)
-->Selecciona un valor en concreto, sin condiciones.
->seleccionar_valor_condicion($campo, $fila, $condicion, $valor de condicion)
-->Selecciona un valor apartir de una condicion, por ejemplo: selecciona usuario donde la id es la que me llega por get
->insertar_valor($columna, 'test1','test2','test3', "('".$var."', '".$var1."', '".$var2."')")
-->Inserta valores a su correspondiente tabla
->actualizar_tabla($columna, $fila, $valor)
-->Actualiza una tabla
->actualizar_tablas_condicion($columna, $fila, $valor, $condicion, $c_condicion)
-->Actualiza una tabla en concreto con condicion, ejemplo, actualizame la tabla con id 1, y esa id la pasas por _GET, o cualquier método
UTILIZACIÓN
Construccion SQL y estado
<?php
//Convertir la variable SQL en un objeto, en este caso el objeto SQL
$sql =new sql();
//Muestra Configuracion actual del servidor
$sql->mostrar_config_actual();
//Estado del enlace
$sql->estado_enlace();
?>
Operaciones SQL
<?php
//Convertir la Variable dato en un objeto, en ste caso sql_operaciones
$dato =new sql_operaciones();
//Seleccionar Dato Exacto
$dato->seleccionar_valor_exacto('nombre', 'sistema');
//Seleccionar Dato Condicion
$dato->seleccionar_valor_condicion('nick', 'user', 'id', '1');
//Insertar Datos
$dato->insertar_valor('test', '(testit, testit2)', "('".$test."', '".$test2."')");
//Actualizar tablas masivamente
$dato->actualizar_tablas('sistema', 'nombre', 'SimpleForum');
//Actualizar valor concreto
$dato->actualizar_tablas_condicion('user', 'nick', 'blue', 'id', '1');
//Borrar Registro
$dato->borrar_registro('test', 'testit2', '0');
?>