BlogoDev

Clase para conectar php con mysql

by P-los on Apr.09, 2009, under Funciones, Web

En estos dias libres de semana santa, me estoy dedicando a realizar un sistema de pre-registro de asistentes a un evento, y por costumbre inicié haciendo desde cero el código de conexion a una base de datos MySql, pero recordé algo:

“La gran mayoría de lo que necesitas, alguien más ya lo hizo”

Así que me puse a buscar un poco, y me encontré con el siguiente bloque de código en WebTutoriales:

Archivo mysql.php:

<?php class MySQL{
private $conexion;
private $total_consultas;
public function MySQL(){
if(!isset($this->conexion)){
$this->conexion = (mysql_connect("Servidor","usuario","password")) or die(mysql_error());
mysql_select_db("nombreBD",$this->conexion) or die(mysql_error());
}
}
public function consulta($consulta){
$this->total_consultas++;
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado){
echo 'MySQL Error: ' . mysql_error();
exit;
}
return $resultado;
}
public function fetch_array($consulta){
return mysql_fetch_array($consulta);
}
public function num_rows($consulta){
return mysql_num_rows($consulta);
}
public function getTotalConsultas(){
return $this->total_consultas;
}
}?>

Y para hacer uso de ella, el siguiente ejemplo:
include("mysql.php");
$db = new MySQL();
$consulta = $db->consulta("SELECT id FROM mitabla1");
if($db->num_rows($consulta)>0){

while($resultados = $db->fetch_array($consulta)){
echo "ID: ".$resultados['id']."<br />";
}
}

Para hacerlo un poco más flexible, añadí en un archivo de configuración los parámetros de conexión a la base de datos, quedando de la siguiente manera:

archivo de configuración:

$reg_server = "localhost";
$reg_user = "root";
$reg_password = "";
$reg_database = "tests";

Archivo mysql.php (solo cambia esta función, el resto permanece igual):

public function MySQL(){
require_once("reg_params.php");
if(!isset($this->conexion)){
$this->conexion = (mysql_connect($reg_server,$reg_user,$reg_password)) or die(mysql_error());
mysql_select_db($reg_database,$this->conexion) or die(mysql_error());
}
}

Según la pagina original, está hecho para trabajar bajo PHP 5, así que si lo vas a utilizar en una versión anterior de php, posiblemente te encuentres con que habrá algunas correcciones que hacer.

:, ,
Posts Relacionados

4 Comments for this entry

  • Israel Viana

    Hola, interesante clase! Personalmente he hecho alguno de estos artificios, pero creo que clases ya hechas como PEAR-DB o Zend_Db son más seguras y ofrecen mayor compatibilidad entre diferentes motores de bases de datos (bueno, en realidad ofrecen abstracción).

    Quizá te interese mi blog, en el que hablo sobre estos temas, PHP, web semántica, usabilidad… http://www.israelviana.es

  • LUis

    HOla quisiera saber por que cuando ejecuto desde mi maquina el archivo mysql.php nunca me vota error asi cambie las variables y este mal, la coneccion o la base de datos ????

  • Ricardo Corona

    Hola, use tu funcion, me funciona de maravilla al consultar pero a la hora de tratar de insertar informacion no me funciona .

    Alguna idea … me imagino que es igual usar la misma funcion consulta();, pero no me funciona ..

    espero tu respuesta ..

    saludos ..

  • P-los

    @LUis: el archivo mysql.php contiene una clase con varias funciones, que deben ser llamadas desde un archivo externo (el que está seguido del “Y para hacer uso de ella, el siguiente ejemplo:”).

    @Ricardo Corona: efectivamente, utilizo la misma funcion consulta(); mandandole como parametros la sentencia “insert”. Revisa los permisos en la base de datos, posiblemente vaya por ahi.

1 Trackback or Pingback for this entry

  • Widgets con PHP - BlogoDev

    [...] } ?> En esta clase se está utilizando una variable global llamada $mySql, esta es la clase para conextarse a MySql que expuse tiempo atras, y se crea desde antes, ya sea en el index, o donde se instancía el [...]

Leave a Reply

Paginas

 

April 2009
M T W T F S S
« Mar   May »
 12345
6789101112
13141516171819
20212223242526
27282930