PHP Classes
elePHPant
Icontem

File: README-ES.md

Recommend this page to a friend!
  Classes of Josantonius  >  PHP Database  >  README-ES.md  >  Download  
File: README-ES.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Database
Execute common SQL queries with a fluent interface
Author: By
Last change:
Date: 1 month ago
Size: 12,052 bytes
 

Contents

Class file image Download

PHP Database library

Latest Stable Version Total Downloads Latest Unstable Version License Travis

English version

Biblioteca para la administración de bases de datos SQL para ser utilizada por varios proveedores al mismo tiempo.

Instalación

La mejor forma de instalar esta extensión es a través de composer.

Para instalar PHP Database library, simplemente escribe:

$ composer require Josantonius/Database

El comando anterior sólo instalará los archivos necesarios, si prefieres descargar todo el código fuente (incluyendo tests, directorio vendor, excepciones no utilizadas, documentos...) puedes utilizar:

$ composer require Josantonius/Database --prefer-source

También puedes clonar el repositorio completo con Git:

$ git clone https://github.com/Josantonius/PHP-Database.git

Requisitos

Esta biblioteca es soportada por versiones de PHP 5.6 o superiores y es compatible con versiones de HHVM 3.0 o superiores.

Cómo empezar y ejemplos

Para utilizar esta biblioteca, simplemente:

require __DIR__ . '/vendor/autoload.php';

use Josantonius\Database\Database;

Métodos disponibles

Métodos disponibles en esta biblioteca:

Database::getConnection();
Database->query();
Database->create();
Database->select();
Database->insert();
Database->update();
Database->replace();
Database->delete();
Database->truncate();
Database->drop();
Database->in();
Database->table();
Database->from();
Database->where();
Database->order();
Database->limit();
Database->execute();

Uso

Ejemplo de uso para esta biblioteca:

<?php
require __DIR__ . '/vendor/autoload.php';

use Josantonius\Database\Database;

$db = Database::getConnection(
    'identifier',  # Identificador único para la conexión
    'PDOprovider', # Nombre del proveedor
    'localhost',   # Nombre del servidor de la base de datos
    'db-user',     # Nombre de usuario de la base de datos
    'db-name',     # Nombre de la base de datos
    'password',    # Contraseña de la base de datos
    array('charset' => 'utf8')
);

// Y una vez establecida la conexión:

$db = Database::getConnection('identifier');

Select

Seleccionar en la base de datos.

$db->select()->from()->where()->order()->limit()->execute();

select($columns)

$columns ? (array|string|empty) Nombres de las columnas a seleccionar. Vacío para seleccionar todo.

from($table)

$table ? (string) Nombre de la tabla.

where($clauses, $statements) (Opcional)

$clauses ? (array|string) ? Parámetros para filtrado.

$statements ? (array) (Opcional) ? Declaraciones preparadas.

order($params) (Opcional)

$params ? (array|string) ? Parámetros de ordenación para la consulta.

limit($number) (Opcional)

$number ? (int) ? Limitar el número de filas para la respuesta a la consulta.

execute($dataType)

$dataType ? (string|empty) ? Parámetros aceptados: 'obj', 'array_num', 'array_assoc' & 'rows'.

Ejemplo de consulta SELECT. Para más ejemplos ver la clase DatabaseSelectTest.

$statements[] = [':id',   1,       'int'];
$statements[] = [':name', 'Manny', 'str'];

$clauses = ['id = :id', 'name = :name'];

$query = $db->select('name')
            ->from('test')
            ->where($clauses, $statements);
            ->order('id DESC')
            ->limit(1);

$result = $query->execute('obj');

Insert

Insertar en la base de datos.

$db->insert()->in()->execute();

insert($data, $statements)

$data ? (array) ? Nombre de columnas y valores a insertar.

$statements ? (array) (Opcional) ? Declaraciones preparadas.

in($table)

$table ? (string) Nombre de la tabla.

execute($dataType)

$dataType ? (string|empty) ? Parámetros aceptados: 'rows' & 'id'.

Ejemplo de consulta INSERT. Para más ejemplos ver la clase DatabaseInsertTest.

$statements[] = [1, "Isis"];
$statements[] = [2, "isis@email.com"];

$data = [
    "name"  => "?", 
    "email" => "?"
];

$query = $db->insert($data, $statements)
		    ->in('test');

$result = $query->execute('id');

Update

Actualizar en base de datos.

$db->update()->in()->where()->execute();

update($data, $statements)

$data ? (array) ? Nombre de columnas y valores a actualizar.

$statements ? (array) (Opcional) ? Declaraciones preparadas.

where($clauses, $statements) (Opcional)

$clauses ? (array|string) ? Parámetros para filtrado.

$statements ? (array) (Opcional) ? Declaraciones preparadas.

execute($dataType)

$dataType ? (string|empty) ? Parámetros aceptados: 'rows' & 'id'.

Ejemplo de consulta UPDATE. Para más ejemplos ver la clase DatabaseUpdateTest.

$data = [
    'name'  => ':new_name', 
    'email' => ':new_email'
];

$statements['data'][] = [':new_name',  'Manny',           'str'];
$statements['data'][] = [':new_email', 'manny@email.com', 'str'];

$clauses = 'id = :id AND name = :name1 OR name = :name2';

$statements['clauses'][] = [':id',         1,      'int'];
$statements['clauses'][] = [':name1',     'Isis',  'str'];
$statements['clauses'][] = [':name2',     'Manny', 'str'];


$query = $db->update($data, $statements['data'])
            ->in('test')
            ->where($clauses, $statements['clauses']);

$result = $query->execute();

Replace

Reemplazar si existe o insertar una nueva fila si no existe.

$db->replace()->from()->execute();

replace($data, $statements)

$data ? (array) ? Nombre de columnas y valores a insertar o reemplazar.

$statements ? (array) (Opcional) ? Declaraciones preparadas.

from($table)

$table ? (string) Nombre de la tabla.

execute($dataType)

$dataType ? (string|empty) ? Parámetros aceptados: 'rows' & 'id'.

Ejemplo de REPLACE. Para más ejemplos ver la clase DatabaseReplaceTest.

$data = [
    'id'    => 1,
    'name'  => 'Manny', 
    'email' => 'manny@email.com'
];

$query = $db->replace($data)
            ->from('test');

$result = $query->execute();

Delete

Eliminar campos en base de datos.

$db->delete()->from()->where()->execute();

delete()

Este método no tiene atributos.

from($table)

$table ? (string) Nombre de la tabla.

where($clauses, $statements) (Opcional)

$clauses ? (array|string) ? Parámetros para filtrado.

$statements ? (array) (Opcional) ? Declaraciones preparadas.

execute($dataType)

$dataType ? (string|empty) ? Parámetros aceptados: 'rows' & 'id'.

Ejemplo de consulta DELETE. Para más ejemplos ver la clase DatabaseDeleteTest.

$query = $db->delete()
            ->from('test')
            ->where('id = 1');

$result = $query->execute();

Create

Crear tabla en base de datos.

$db->create()->table()->execute();

create($params)

$params ? (array) ? Parámetros de configuración para las columnas.

table($table)

$table ? (string) Nombre de la tabla.

foreing($foreing_key) (Opcional)

$foreing_key ? (string) Foreing key.

reference($reference) (Opcional)

$reference ? (string) Columna a la que se hace referencia.

on($table) (Opcional)

$table ? (string) Nombre de la tabla a la que se hace referencia.

actions($actions) (Opcional)

$actions ? (string) Acciones cuando se elimine o actualice una fila relacionada.

engine($engine) (Opcional)

$engine ? (string) Motor para la base de datos.

charset($charset) (Opcional)

$charset ? (string) Charset para la base de datos.

execute()

Este método no tiene atributos.

Ejemplo de consulta CREATE. Para más ejemplos ver la clase DatabaseCreateTest.

$params = [
    'id'       => 'INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY', 
    'name'     => 'VARCHAR(30) NOT NULL',
    'email'    => 'VARCHAR(50)',
    'reg_date' => 'TIMESTAMP'
];

$query = static::$db->create($params)
                    ->table('test');

$result = $query->execute();

Truncate

Truncate tabla en base de datos.

$db->truncate()->table()->execute();

truncate()

Este método no tiene atributos.

table($table)

$table ? (string) Nombre de la tabla.

execute()

Este método no tiene atributos.

Ejemplo de consulta TRUNCATE. Para más ejemplos ver la clase DatabaseTruncateTest.

$query = $db->truncate()
            ->table('test');

$result = $query->execute();

Drop

Eliminar tabla en base de datos.

$db->drop()->table()->execute();

drop()

Este método no tiene atributos.

table($table)

$table ? (string) Nombre de la tabla.

execute()

Este método no tiene atributos.

Ejemplo de consulta DROP. Para más ejemplos ver la clase DatabaseDropTest.

$query = $db->drop()
            ->table('test');

$result = $query->execute();

Tests

Para ejecutar las pruebas simplemente:

$ git clone https://github.com/Josantonius/PHP-Database.git

$ cd PHP-Database

$ mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS phpunit CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY ''; GRANT ALL ON phpunit.* TO 'travis'@'127.0.0.1'; FLUSH PRIVILEGES;"

$ phpunit

? Tareas pendientes

  • [x] Completar tests
  • [ ] Mejorar la documentación

Manejador de excepciones

Esta biblioteca utiliza control de excepciones que puedes personalizar a tu gusto.

Contribuir

  1. Comprobar si hay incidencias abiertas o abrir una nueva para iniciar una discusión en torno a un fallo o función.
  2. Bifurca la rama del repositorio en GitHub para iniciar la operación de ajuste.
  3. Escribe una o más pruebas para la nueva característica o expón el error.
  4. Haz cambios en el código para implementar la característica o reparar el fallo.
  5. Envía pull request para fusionar los cambios y que sean publicados.

Esto está pensado para proyectos grandes y de larga duración.

Repositorio

Los archivos de este repositorio se crearon y subieron automáticamente con Reposgit Creator.

Licencia

Este proyecto está licenciado bajo licencia MIT. Consulta el archivo LICENSE para más información.

Copyright

2017 Josantonius, josantonius.com

Si te ha resultado útil, házmelo saber :wink:

Puedes contactarme en Twitter o a través de mi correo electrónico.