Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

WItam

Chce w akcji utworzyc surowe zapytanie SQL - poprostu pytanie sql ktore stworzy tablice. tablica ta bedzie "obrabiana" w widoku.

Jak takie zapytanie powinno wygladac zakladajac ze Symfony to wersja 1.4 z domyslnie wlaczonym Doctrine
Łukasz Woźniak

Łukasz Woźniak Starszy programista,
Asseco Business
Solutions S.A.

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

$connection = Doctrine_Manager::getInstance()->connection();
$statement = $connection->execute($sql);
$statement->execute();

while($row = $statement->fetch(PDO::FETCH_NUM))


W $sql wiadomo zapytanie Twoje, a resztę znasz z php4, sądzę ;)Łukasz Woźniak edytował(a) ten post dnia 03.11.10 o godzinie 23:14
Dawid Rokita

Dawid Rokita CTO picAds.pl

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Mogę się mylić ale czy nie przypadkiem w 2 linijce prepare zamiast execute ???

1: $connection = Doctrine_Manager::getInstance()->connection();
2: $statement = $connection->preprare($sql);
3: $statement->execute();

4: while($row = $statement->fetch(PDO::FETCH_NUM))
Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Niestety powyższe przyklady nie dzialaja - albo otrzymuje komunikat Symfony "Błąd serwera" albo wylacznie cale biale pole przegladarki.

Symfony jest w porzadku - dla porownania umiescilem w akcji kod wykonania zapytania PDO:

$pdo = new PDO ('mysql:host=localhost;dbname=baza', 'root', '');
$pdo -> query ("SET NAMES 'utf8'");
$pdo -> query ('SET CHARACTER_SET utf8_unicode_ci');
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->stmt = $pdo -> query('SELECT * FROM tabela');

I w tym przypadku w widoku mam zmienna stmt ktora moge potraktowac petla i wybrac dane.

Tylko ze to oczywiscie nie rozwiazuje problemu - po to sie uzywa frameworka zeby korzystac z jego "wewnetrznych" mechanizmow.

Co moze byc nie tak w przykladach ponizej ?
Łukasz Woźniak

Łukasz Woźniak Starszy programista,
Asseco Business
Solutions S.A.

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Dawid Rokita:
Mogę się mylić ale czy nie przypadkiem w 2 linijce prepare zamiast execute ???

1: $connection = Doctrine_Manager::getInstance()->connection();
2: $statement = $connection->preprare($sql);
3: $statement->execute();

4: while($row = $statement->fetch(PDO::FETCH_NUM))


tak jak najbardziej, przepraszam pisalem na szybko.
Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Właśnie sęk w tym że ZADEN z powyższych przykładów nie działa :(

Kurcze szukam przez google i nic :(

A moze zrobic tak ze pobrac parametry do polaczenia z baza i zastosowac "zwykly" kod PDO ?

W tym momencie kolejne pytanie jak na poziomie akcji uzyskac zmienne zawierajace:

-nazwe hosta bazy
-nazwe bazy
-uzytkownika bazy
-haslo bazy
Łukasz Woźniak

Łukasz Woźniak Starszy programista,
Asseco Business
Solutions S.A.

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Jak używasz podanego przykładu co robisz w petli ?
Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Piekne dzieki dziala :-)

Poprostu nalezalo dopisac kod tworzacy tablice i dopiero ta stworzona tablice wykorzystac w widoku:

$connection = Doctrine_Manager::getInstance()->connection();
$pytanie_sql = 'select * from tabela';
$statement = $connection->prepare($pytanie_sql);
$statement->execute();

while($row = $statement->fetch(PDO::FETCH_NUM))
{
$this->pozycja_tablicy_0 = $row[0];
$this->pozycja_tablicy_1 = $row[1];
$tablica[]="$this->pozycja_tablicy_0#$this->pozycja_tablicy_1";
}
$this->tablica=$tablica;
Łukasz Fiłyk

Łukasz Fiłyk Programista PHP

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

No to teraz mi szczęka opadła..... Nie wpisałeś wcześniej zapytania sgl....

Ryszard Jaklewicz:
Piekne dzieki dziala :-)

Poprostu nalezalo dopisac kod tworzacy tablice i dopiero ta stworzona tablice wykorzystac w widoku:

$connection = Doctrine_Manager::getInstance()->connection();
$pytanie_sql = 'select * from tabela';
$statement = $connection->prepare($pytanie_sql);
$statement->execute();

while($row = $statement->fetch(PDO::FETCH_NUM))
{
$this->pozycja_tablicy_0 = $row[0];
$this->pozycja_tablicy_1 = $row[1];
$tablica[]="$this->pozycja_tablicy_0#$this->pozycja_tablicy_1";
}
$this->tablica=$tablica;
Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Czy ja cos pisalem o samym zapytaniu SQL ? To nie o nie chodzilo. Jasne ze wpisywalem zapytanie SQL :-)

konto usunięte

Temat: Kolejne pytanie :-) Wykonanie "surowego" zapytania SQL -...

Tylko ze to oczywiscie nie rozwiazuje problemu - po to sie uzywa frameworka zeby korzystac z jego "wewnetrznych" mechanizmow.

Jeśli chcesz korzystać z wewnętrznych mechanizmów symfony / doctrine to raczej polecał bym użycie własnych metod populacji danych z bazy czyli custom hydrate'ów.

http://www.doctrine-project.org/projects/orm/1.2/docs/...

jednak mam świadomość że możesz mieć niezbyt rozbudowaną logikę przekształceń więc być może łatwiej jest osiągnąć to przy użyciu PDO, tak jak zaproponowano powyżej, nie mniej jednak przetwarzanie wyników zapytania w akcji i operowanie na danych jest nie zgodne z założeniami separacji MVC (więc warto przenieść to do adekwatnej klasy), a tak nawiasem mówiąc oprócz odwołania się do menadżera połączeń doctrine to reszta kodu dotyczy modułu pdo i nie ma tam żadnych wewnętrznych mechanizmów frameworka.Łukasz Adamczewski edytował(a) ten post dnia 23.11.10 o godzinie 15:55



Wyślij zaproszenie do