2012-04-02 15 views
6

Buduję aplikację, która musi mieć konstruktora zapytań MySQL w stylu OOP. Chcę być w stanie elastycznie budować złożone kwerendy przy użyciu tylko PHP i uzyskać wynikowy ciąg kwerendy do wykonania z mojego własnego sterownika bazy danych.Konstruktor zapytań MySQL klasa PHP

Czy ktoś wie o dobrym samodzielnym konstruktorze zapytań dla PHP? Proszę zauważyć, że nie potrzebuję sterownika bazy danych potrzebuję czystej klasy konstruktora zapytań MySQL (najlepiej napisanej z funkcją stylu wielbłąda i nazwami zmiennych).

Odpowiedz

5

Wreszcie wziąłem Doctrine ORM

i modyfikowane to trochę zbudować SQL zamiast DQL.

To działa bardzo dobrze i jest w stanie konstruować złożone zapytania.

Edytuj: Możesz znaleźć moje ostatnie stabilne wdrożenie w ramach Stingle. Spójrz na wtyczkę Db/QueryBuilder.

+0

Czy możesz zaktualizować link, proszę? – TheCrazyProfessor

+0

Zaktualizowany link, proszę spojrzeć –

0

Istnieje jedna wersja narzędzia do tworzenia zapytań (licencjonowana LGPL). Nie używałem go, ale warto spojrzeć na to, czy odpowiada Twoim celom: http://code.google.com/p/mysql-query-builder/

+0

To bardzo dobry, ale brak mu zdolności do lewych, wewnętrznych, zewnętrznych połączeń. –

+3

Jak to może być "bardzo dobre", ale nie obsługuje połączeń? To bardzo podstawowe. Jest również nietknięty przez ponad 3 lata, może mieć niepewne wsparcie dla nowszych wersji PHP. – Cylindric

1

Biblioteka PhpToolCase posiada samodzielne narzędzie do budowania zapytań, które jest dość łatwe i wygodne w użyciu.

Jest pełne wsparcie dołączyć aswell: http://phptoolcase.com/guides/ptc-qb-guide.html

A ya, wydaje się być napisany z funkcją stylu wielbłąd i nazw zmiennych :)

2

DSQL - Query Builder for PHP jest dokładnie to, czego szukasz na brak zależności i ma licencji MIT:

$query = new atk4\dsql\Query(); 
$query ->table('employees') 
    ->where('birth_date','1961-05-02') 
    ->field('count(*)') 
    ; 
echo "Employees born on May 2, 1961: ".$query->getOne(); 

https://github.com/atk4/dsql

dokumentacja: http://dsql.readthedocs.io/