Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2017, 09:03
Triby2
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
APORTE Clase PDO

Saludos,

Hace tiempo me diseñe una clase para trabajar con Bases de datos en proyectos donde no utilizaba Laravel. Pues el ORM de Laravel me encanta y quería hacer algo muy parecido a ese ORM para no tener que escribir largas sentencias SQL, con los consecuentes fallos de escritura que puden aparecer.

Asi que quisiera compartir esta clase con la comunidad, pues hasta ahora era solo para mi y viendo, a todas las personas que publican aquí, como mezclan en un mismo archivo codigo html, php y sql pues decidí, al menos, ahorrarle esos trabajitos extras con esta clase.

Está construida sobe PDO, así que quien quiera utilizarla, tiene que activar la extensiones pdo de php dependiendo del tipo de base de datos que vaya a utilizar.

Como ya saben muchos, PDO es capaz de trabajar con diferentes bases de datos entre las mas conocidas, MySql, SQL Server, SQL Lite y ODBC.

Si quereis usarla descargadla haciendo clic aqui

Ahora unos ejemplos para comenzarla a usar:

La conexión
Código PHP:
# El puerto es opcional
$db = new DBManager('host''username''password''database name''driver''port'
Testear conexión
Código PHP:
/* Para probar la conexión antes de poneros a escribir código como posesos, 
siempre es mejor probar la conexión así que hay una función para tal efecto */
$db->testConnection();

# Retornará true o false 
Ejemplos para queries
INSERT
Código PHP:
$array = [
    
'campo1' => 'valor1',
    
'campo2' => 'valor2',
    ...
];

$db->insert('tabla'$array); 
UPDATE
Código PHP:
$array = [
    
'campo1' => 'valor1',
    
'campo2' => 'valor2',
    ...
];

$db->where('campo'$valor);
$db->update('tabla'$array); 
COUNT
Código PHP:
$db->getCount('tabla''campo'); 
SELECT
Código PHP:
# Traer datos de la tabla
$db->get('tabla');

# Traer solo algunos campos de la tabla
$select = ['campo1''campo2', ...];
$db->get('tabla'$select);

#Realizar un join
/* El tipo de JOIN puede ser los que permita PDO que en principio son 
INNER, LEFT, RIGHT Y FULL. Si falla, es muy probable que PDO no lo permita hacer.*/
$db->join('tabla2''tabla1''campo_tabla1''campo_tabla2''tipo_join');
$db->get('tabla1');

#NOTA: se puede realizar más de un join, solo hay que ponerlos todos antes del $db->get();

# Traer datos según valor(es)
# Puede ser solo por un filtro
$db->where('campo''valor');
$db->get('tabla');

# Como puede ser por varios
$db->where('campo1''valor1');
$db->where('campo2''valor2');
$db->get('tabla');

# Traer datos ordenados por un campo, si se agrega lo siguiente, por defecto el orden será DESC
$db->orderby('campo'); 
$db->get('tabla');

# Pero si lo queremos ASC
$db->orderby('campo''A');
$db->get('tabla');

# Complicando el query
$db->where('campo1''valor1');
$db->where('campo2''valor2');
$db->join('tabla2''tabla1''campo_tabla1''campo_tabla2''tipo_join');
$db->orderby('campo');
$db->get('tabla1'); 
IMPIRMIR RESULTADO EN PANTALLA
Código PHP:
$db->dd($db->get('tabla'); 
SI SE DESEA COMPROBAR COMO SE ESTAN CONSTRUYENDO LOS QUERIES, SE PUEDEN IMPIRMIR EN PANTALLA
Código PHP:
# Solo es necesario actibar la opción dentro de $db->get(), $db->insert() o $db->update()
$db->get('tabla'null1);
$db->insert('tabla'$array1);
$db->update('tabla'$array1); 
NOTA: no se atenderán cuestiones de funcionamiento, excepto si son problemas de conexión.

Si da fallos en la construcción de SQL, impriman el SQL en pantalla que genera, copienlo y pruebenlo en un gestor de base de datos como phpMyAdmin, lo más probable es que se hayan equivocado ustedes al setear cada función.

Esto es PDO, así que hay sentencias que aunque funcionen en MySQL, no quiere decir que funcionen con PDO. Para ello consulten la documentación de PDO para saber qué pueden hacer y qué no respecto a MySQL

Espero que lo disfruten y les ayude acelerando su propósito de cambiar el mundo.

Un saludo a todos