10 votos

Clase PHP constructor de consultas MySQL

Estoy construyendo una aplicación que necesita tener un generador de consultas MySQL estilo OOP. Quiero poder construir de manera flexible consultas complejas usando solo PHP y obtener la cadena de consulta resultante para ejecutarla con mi propio controlador de base de datos.

¿Alguien conoce un buen generador de consultas independiente para PHP? Por favor, tenga en cuenta que no necesito un controlador de base de datos, sino una clase de generador de consultas MySQL desnudo (preferiblemente escrita con nombres de funciones y variables en estilo camello).

6voto

Alex Amiryan Puntos 704

Finalmente tomé Doctrine ORM

y lo modifiqué un poco para construir SQL en lugar de DQL.

Esto funciona muy bien y es capaz de construir consultas complejas.

Editar: Puedes encontrar mi implementación estable final en Stingle framework. Echa un vistazo al plugin Db/QueryBuilder.

5voto

romaninsh Puntos 6048

DSQL - Query Builder for PHP es exactamente lo que estás buscando, no tiene dependencias y tiene licencia MIT:

$query = new atk4\dsql\Query();
$query  ->table('employees')
    ->where('birth_date','1961-05-02')
    ->field('count(*)')
    ;
echo "Empleados nacidos el 2 de mayo de 1961: ".$query->getOne();

https://github.com/atk4/dsql

Documentación: http://dsql.readthedocs.io/

2voto

user1291481 Puntos 11

La biblioteca PhpToolCase tiene una herramienta de creación de consultas independiente que es bastante fácil y práctica de usar.

También cuenta con soporte para join completo: http://phptoolcase.com/guides/ptc-qb-guide.html

Y sí, parece estar escrita con nombres de funciones y variables en estilo camello :)

0voto

raPHPid Puntos 557

Existe una versión del generador de consultas allí (licenciado bajo LGPL). No lo he usado, pero tal vez quieras echarle un vistazo si se ajusta a tus propósitos: http://code.google.com/p/mysql-query-builder/

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X