Download the PHP package osvaldogdelrio/pdo-database without Composer

On this page you can find all versions of the php package osvaldogdelrio/pdo-database. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package pdo-database

Scrutinizer Code Quality Build Status Code Intelligence Status Code Coverage Travis Build Status

pdo-database

Librería en PHP para trabajar con PDO y bases de datos SQL escrita en español.

Hasta el momento contiene funcionalidad básica:

SELECT JOIN ORDER LIMIT ORDER-LIMIT INSERT UPDATE DELETE TRUNCATE

Instalación

Escrita en PHP 8.0

Requiere: PSR-4: Autoloader para un mejor funcionamiento sin tener que reescribir los namespace

Vía composer

Requiere de Factory para un mejor uso aunque puede utilizarse sin este método

Usarla sin Factory requiere de mucho código que puede llegar a ser abrumador en proyectos que implementan Modelos, Controladores y Vistas, para realizar una conexión de forma tradicional hay que hacer:

Para realizarla con Factory y la clase CrearConexionBaseDeDatos

Para ejecutar un sentencia "SELECT * FROM id WHERE Idusuario = 1" y mostrar los resultados en arrays sin Factory se requiere

Las tablas necesarias para las pruebas de la librería están disponibles en test.sql usando:

Listado de sentencias con código usando Factory

SELECT

SELECT * FROM prueba

SELECT id,uno,dos FROM prueba

Operadores lógicos aceptados en la sentencia WHERE, AND y OR

Cuando la sentencia se construye se valida que el operador lógico unicamente sea cualquiera de estos:

Reglas de validación para la construcción de sentencias WHERE

Reglas de validación para la construcción de sentencias WHERE AND, WHERE OR

Reglas de validación para la construcción de sentencias BETWEEN, NOT BETWEEN

SELECT * FROM prueba WHERE id = ?

SELECT * FROM prueba WHERE id = ? AND uno != ?

SELECT * FROM prueba WHERE id = ? OR uno != ?

SELECT * FROM prueba WHERE id BETWEEN ? AND ?

SELECT * FROM prueba WHERE id NOT BETWEEN ? AND ?

INSERT

INSERT INTO prueba (uno,dos,tres) VALUES (?,?,?)

UPDATE

UPDATE prueba SET uno = ?,dos = ? WHERE id = ?

UPDATE prueba SET uno = ? WHERE id = ? AND id = ?

UPDATE prueba SET uno = ? WHERE id = ? OR id = ?

UPDATE prueba SET uno = ? WHERE BETWEEN id ? AND ?

UPDATE prueba SET uno = ? WHERE NOT BETWEEN id ? AND ?

DELETE

No acepta la sentencia sin el valor WHERE, WHERE AND, WHERE OR, WHERE BETWEEN o WHERE NOT BETWEEN, para borrar todo el contenido de una tabla usar TRUNCATE

DELETE FROM prueba WHERE id = ?

DELETE FROM prueba WHERE id = ? AND id = ?

DELETE FROM prueba WHERE BETWEEN id ? AND ?

DELETE FROM prueba WHERE NOT BETWEEN id ? AND ?

JOIN

Acepta INNER, RIGHT, LEFT, FULL

Las consultas con JOIN pueden llegara ser bastante complejas, esta librería puede armar una enorme cantidad de JOINs de forma relativamente sencilla, el esquema es simple, los elementos básicos del JOIN se colocan en un array, y este puede tener multiples JOIN a tablas internas, por ejemplo, en el siguiente ARRAY se arma una consulta que dice:

En definitiva no hay forma "sencilla" de armar una sentencia tan larga como puede ser un JOIN y que no confunda un poco, sin embargo, es muy útil poderlos hacer con arrays de forma practicamente ilimitada.

Esta consulta la podemos dividir en distintos arrays:

JOIN WHERE

De la misma forma podemos agregar al JOIN la sentencia WHERE AND, WHERE OR, WHERE BETWEEN y WHERE NOT BETWEEN, solo modificando en contenido del array en la llave 'where' =>

ORDER

Para agregar la sentencia ORDER BY en sentencias tipo SELECT ya sea con cualquier combinación de WHERE o JOIN solo hay que llamar la clase Factory terminando con OrderBy:

SELECT * FROM prueba ORDER BY id ASC

Para realizar una consulta SELECT WHERE ORDER BY la clase esta esta: SelectWhereOrderBy, todas clases que terminen en OrderBy aceptarán el parametro 'order' en el array

LIMIT

Para agregar la sentencia LIMIT en sentencias tipo SELECT ya sea con cualquier combinación de WHERE o JOIN solo hay que llamar la clase Factory terminando con Limit:

SELECT * FROM prueba LIMIT 1

Para realizar una consulta SELECT WHERE LIMIT la clase esta esta: SelectWhereLimit, todas clases que terminen en Limit aceptarán el parametro 'limit' en el array

ORDER-LIMIT

Las sentencias ORDER BY 'nombre_de_columna' LIMIT 'numero_de_filas' se pueden obtener agregando a cualquier clase Select o Join la terminación OrderByLimit, e incluir en el array ambos campos:

SELECT * FROM prueba ORDER BY id LIMIT 10

TRUNCATE

Borra todos los datos de la tabla sin eliminar la tabla

EJECUTAR LA CONSULTA

Al ejecutar cada consulta SELECT, UPDATE, INSERT, DELETE, JOIN, O CUALQUIER OTRA:

RESULTADOS DE SELECT

Contar los resultados de un select

Devuelve objetos

Devuelve arrays

Devuelve string en formato JSON

RESULTADOS DE INSERT

ContarResultados devuelve el número de filas afectadas por la consulta ejecutada

Estructura de directorios

ejemplos de uso

PHP Unit

Para ejecutar las pruebas

Para ejecutar las pruebas y mostrar en texto con --testdox

La librería tiene pruebas que se prueden encontrar en pdo-database/test. Contiene pruebas unitarias para la construcción de:

Idea

La idea principal es lograr encapsular los valores de una sentencia SQL y dejar de usar sentencias IF, SETTERS Y GETTERS que pueden producir comportamientos extraños. Usar Programación Orientada a Objetos, considerando un objeto una sentencia SQL como SELECT * FROM, que debe de permanecer inmutable hasta la destrucción del mismo.

¿Por qué tantos objetos y clases pequeños?

Al tratar de programar en OOP a lo largo de mis proyectos personales me he encontrado con el problema de tener que estar modificando una y otra vez el código por mover una linea en alguna parte, sobre todo cuando se trata de Clases que intercatuan con la Base de Datos. Creando esta estructura intento minimamente realizarla con principios SOLID, tarea bastante dificil, pero siempre se puede ir mejorando.

Por ejemplo: si se requiere realizar una consulta sencilla como SELECT * FROM 'tabla' ¿para qué cargar clases que manejan componentes con consultas más complejas? o que en la misma clase se pueda realizar select, update, insert, delete, truncate y hasta create? Al final del día realizar un poco más de esfuerzo escribiendo clases que tengan solo una función e inyectarlas en otras para construir una usabilidad más compleja ahorra mucho tiempo y esfuerzo en proyectos que crecen de pequeños a medianos y grandes.

Los componentes las clases funcionan en su mayoría de forma agnostica a su entorno, es decir, las clases para construir una sentencia SQL funciona sin intercatuar con las clases que generan la conexión, etcétera.

Consultas con sentencias directas

Auqnue no es recomendable realizar consultas directas sin utilizar bindValue, o encapsular las consultas para tener la seguridad que la consulta que escribimos es la que se ejecutará y prevenir SQL Injection, en ambientes de desarrollo es útil, se pueden usar haciendo:


All versions of pdo-database with dependencies

PHP Build Version
Package Version
Requires osvaldogdelrio/factory Version dev-main
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package osvaldogdelrio/pdo-database contains the following files

Loading the files please wait ....