Clase PHP para bases de datos MySQL

  • Autor Autor OsKaR
  • Fecha de inicio Fecha de inicio
OsKaR

OsKaR

Zeta
Verificación en dos pasos activada
Aquí os dejo la clase que utilizo yo en mis últimos proyectos PHP.

PHP:
<?php
// Clase Mysql

class mysql{
  private $conexion;
  private $total_consultas;
  
  public function connect(){
   if(!isset($this->conexion)){
    $this->conexion=(mysql_connect(_host, _user, _pass)) or die(mysql_error());
	mysql_select_db(_base, $this->conexion) or die(mysql_error());
   }
  }
  
  public function query($consulta){
   $this->total_consultas++;
   $resultado=mysql_query($consulta, $this->conexion);
   if(!$resultado){
    die(mysql_error());
	exit();
   }
   return $resultado;
  }
  
  public function fetch_array($consulta){
   return mysql_fetch_array($consulta);
  }
  
  public function num_rows($consulta=0){
   return mysql_num_rows($consulta); 
  }
  
  public function close(){ 
	if ($this->conexion){ 
		return mysql_close($this->conexion); 
	} 
  }  
}
?>

Para definir los datos de la base, basta con poner esto en vuestro config.php o en vuestra configuración de la web.
PHP:
<?php
// mysql
define("_host", "localhost");
define("_user", "usuario");
define("_pass", "pass");
define("_base", "base");
?>

Utilizacion:
PHP:
<?php
// abrir conexion
$db = new mysql();
$db->connet();

// consultas
$db->query("sentencia sql");
$db->num_rows($string);
$db->fetch_array($string);
// etc..

// cerrar conexion
$db->close();

Espero que os sea de utilidad. 🙂
 
Para que fuera realmente útil yo le agregaría funciones para pasar todos los resultados a un array y cosas así...

no se... usar las 4 funciones que ya ofrece el paquete mysql no le veo mucho sentido..

si paresearas los resultados o las querys de consultas aún...
 
Para que fuera realmente útil yo le agregaría funciones para pasar todos los resultados a un array y cosas así...

no se... usar las 4 funciones que ya ofrece el paquete mysql no le veo mucho sentido..

si paresearas los resultados o las querys de consultas aún...

Ok, no soy un programador avanzado ni nada por el estilo, no estaría mal que explicaras como lo harías tu, así todos aprendemos o mejoramos. 😉
 
Es lo mismo que usar php normal, nomás cambiandole los nombres 🙁
nax tiene razón 😀 Yo te recomiendo que hagas un código más robusto, por ejemplo que las sentencias sql las limpiaras de código malicioso (sql injection) y cosas por el estilo, realmente no es complicado.
Inlcuso cuando comienzas a programar mucho creas tus propias clases sin darte cuenta, reusas mucho código de esta forma.
Ya irás viendo.
Admiro tu iniciativa por compartir un poco de tus conocimientos y trabajo, es un buen post.

Saludos!
 
Lo que sí seria interesante es crear una clase que pueda trabajar con cualquier motor de datos, incluyendo Mysql, Sqlite, PostgreSQL y ODBC
 
Pues haber si entre todo el que quiera aprendemos algo mas, que nunca viene mal, yo para evitar ataques SQL lo hago mediante una función externa, seria interesante que los "programadores" que andan por el foro enseñaran un poco. 🙂

Saludos!
 
Pues haber si entre todo el que quiera aprendemos algo mas, que nunca viene mal, yo para evitar ataques SQL lo hago mediante una función externa, seria interesante que los "programadores" que andan por el foro enseñaran un poco. 🙂

Saludos!

No entiendo lo de la funcion externa, podrias explicar el porque de la misma y esas cositas por favor 🙂, estos temas la verdad son re importantes.

En mi caso yo valido todo lo que me mande el usuario, si yo espero por ejemplo un numero pues solo acepto un numero de lo contrario mando un error o redirijo a la pagina de inicio y asi voy con todo, evidentemente nunca jamas se pasa las variables get o post o cualquier cosa que envie un usuario directamente a una consulta, siempre valido y bla bla bla


pd: para lo de usar una clase para manejar consultas para Mysql, Sqlite, PostgreSQL, eso es justamente lo que hacen los ORM ejem doctrine , pero tenes que aprender su propio lenguaje, yo quiero iniciarme pronto con eso de los ORM >.<
 
No entiendo lo de la funcion externa, podrias explicar el porque de la misma y esas cositas por favor 🙂, estos temas la verdad son re importantes.

Yo tengo una función llamada "limpiar", en la que quito todos los caracteres peligrosos para evitar ataques en consultas $_GET o $_POST, pero me interesaría muchísimo aprender lo que comentáis, todo sea por aprender mejor ya que mis conocimientos son para proyectos pequeños. 🙂
 
Atrás
Arriba