Clase PHP para Conectar a MySQL (mas que facil es simple)
Hola a todos, tanto tiempo que no publicaba algo hoy les quiero dejar una clase que acabo de hacer es muy simple y facil de usar, sirve para:
- Conectar a una base de datos
- Si hubo un error podemos saberlo mediante un metodo
- Contar resultados ejecutados
- Contar resultados de una tabla con una condición o ninguna
- Agregar datos mediante un simple metodo que se le pasa un arreglo
- Borrar datos pasandole como referencia la tabla, una condición (puede ser nula) y el limite de resultados a borrar (Si es 0 borra todo)
- Editar datos: Edita X datos de cierta tabla, se le puede pasar la condición a borrar y el limite.
- Obtener un arreglo de datos de una tabla.
- Obtener un arreglo de cualquier dato mediante query de SQL
El código de la clase es el siguiente pero abajo les dejo un link para bajarlo directamente:
/*
* mysql_db: Constructor recibe como parametros
* *El host de la base de datos
* *El user de la base de datos
* *La password de la base de datos
* *La base de datos a conectar
*
* Metodos:
* open() conecta con la base de datos y devuelve falso si no
* get_error() obtiene el error de la coneccion
* query() ejecuta cualquier query de base de datos y luego se deben procesar
* last_id() Obtiene el ultimo id que fue procesado por la clase
* num_rows() obtiene la cantidad de resultados que fueron procesadas por la clase
* count($tabla, $cond = '') Cuenta todos los resultados de una tabla y con x Condicion (puede ser nulo)
* get_array($tabla, $datos = '*', $cond = '') Obtiene un arreglo de datos (se pueden elegir) de una tabla y con x Condicion
** get_array_query($query) Obtiene un arreglo de cualquier consulta SQL
* delete($tabla , $cond = '', $limit = '1') Elimina x Datos (Por defecto 1) de una tabla con X condicion (puede ser nulo)
add($tabla, &$datos, $nomb_id = 'id'){ //agrega datos en una tabla recibiendo un arreglo de datos (las keys tienen que tener el mismo nombre que los campos de la tabla
Ademas se le tiene que pasar el nombre del campo del ID
*
* edit($tabla, &$datos, $cond, $limit = 1) Edita x Datos si se establece la condicion
* recibe un arreglo de datos
* un ejemplo de cond es 'id = 1' edita el arreglo de datos donde el id = 1
*/
define('DB_NO_LINK', 0);
define('DB_NO_DB', 1);
define('DB_NO_Q_RESULT', 2);
define('DB_NO_Q_ROWS', 3);
class mysql_db{
var $errtype;
var $errstr;
var $host;
var $user;
var $pass;
var $link;
var $database;
var $result;
function mysql_db($host,$user,$pass,$database){
/* Set error properties to initial values. */
$this->errtype = false;
$this->errstr = ”;
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->database = $database;
$this->result = NULL;
}
function open(){
$this->link = mysql_connect($this->host,$this->user,$this->pass);
if(!$this->link){
$this->errtype = DB_NO_LINK;
$this->errstr = ‘Connection failed for host: ‘ . $this->host;
return false;
}
if(!mysql_select_db($this->database, $this->link)){
$this->errtype = DB_NO_DB;
$this->errstr = mysql_error($this->link);
return false;
}
return true;
}
function query($sql){ // INICIO METODO
/* Determinamos que tipo de consulta es */
if(eregi(“^delete”, $sql) || eregi(“^insert”, $sql) || eregi(“^update”, $sql)){
$qtype = ‘a’;
}
elseif(eregi(“^select”, $sql)){
$qtype = ‘n’;
}
/* Sabemos cuando la consulta falla o cuando no*/
$result = mysql_query($sql, $this->link);
if(!$result){
$this->errtype = DB_NO_Q_RESULT;
$this->errstr = mysql_error($this->link);
return false;
}
/* Checkeamos por filas afectadas */
if($qtype == ‘n’){
if(mysql_num_rows($result) == 0){
$this->errtype = DB_NO_Q_ROWS;
$this->errstr = ‘NO se seleccionaron las filas’;
return false;
}
}
elseif($qtype == ‘a’){
if(mysql_affected_rows($this->link) <= 0){
$this->errtype = DB_NO_Q_ROWS;
$this->errstr = ‘No se afectaron las filas.’;
return false;
}
}
$this->result = $result;
return $this->result;
} // FIN METODO query
function last_id(){
$id = mysql_insert_id($this->link);
return $id;
}
function num_rows(){
$num_rows = mysql_num_rows($this->result);
return $num_rows;
}
function count($tabla, $cond = ”){
if ($cond) {
$cond = ‘WHERE’.’ ‘.$cond;
}
$this->query(“SELECT COUNT( * ) AS count FROM $tabla $cond ” );
return mysql_result( $this->result, 0 );
}
/*Get Array Obtiene un arreglo de datos desde una tabla, los datos que quieras
* y la condicion que quieras
**/
function get_array($tabla, $datos = ‘*’, $cond = ”) {
if ($cond) {
$cond = ‘WHERE’.’ ‘.$cond;
}
$this->query(“SELECT $datos FROM $tabla $cond”);
$rows = array();
while($row = mysql_fetch_assoc($this->result)){
$rows[] = $row;
}
return $rows;
} //Fin Get_Array
function get_array_query($query) { // OBTIENE UN ARREGLO CON CUALQUIER CONSULTA
$this->query($query);
$rows = array();
while($row = mysql_fetch_assoc($this->result)){
$rows[] = $row;
}
return $rows;
} //Fin Get_Array
function delete($tabla , $cond = ”, $limit = ‘1′){ // Metodo Delete
if ($limit == 0) $limit = ”;
else $limit = “LIMIT $limit”;
if ($cond) {
$cond = ‘WHERE’.’ ‘.$cond;
}
$sql = “DELETE FROM $tabla $cond $limit”;
return $this->query($sql);
} // Fin metodo delete
function add($tabla, &$datos, $nomb_id = ‘id’){ //agrega datos en una tabla
$donde = “`$nomb_id` “;
$valor = ‘NULL’;
foreach ($datos as $key => $value) {
$donde .= “, `$key` “;
$valor .= “, ‘$value’”;
}
return $this->query(“INSERT INTO $tabla ($donde) VALUES ($valor);”);
}// Fin agregar
function edit($tabla, &$datos, $cond, $limit = 1){
foreach ($datos as $key => $value) {
if(!empty($value))
$donde .= “`$key` = ‘$value’ ,”;
}
if ($limit == 0) $limit = ”;
else $limit = “LIMIT $limit”;
$donde = substr($donde, 0, strlen($donde)-1);
$sql = “UPDATE `$tabla` SET $donde WHERE $cond $limit;”;
return $this->query($sql);
}
function close(){
mysql_close($this->link);
}
function get_error() {
return $this->errstr;
}
}
?>
Más adelante les dejo un par de ejemplos.
Pueden bajarla desde aqui: http://geoks.com.ar/blog/wp-content/uploads/class_db.php.zip













