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.
4 Comments for this entry
1 Trackback or Pingback for this entry
-
Widgets con PHP - BlogoDev
September 1st, 2009 on 9:05 pm[...] } ?> 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 [...]
May 15th, 2009 on 4:51 am
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
February 16th, 2010 on 12:30 am
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 ????
March 2nd, 2010 on 5:11 pm
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 ..
March 2nd, 2010 on 6:28 pm
@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.