Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie MySQL(4) ze 'zmiennymi'
oscar17
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

Ostrzeżenie: (0%)
-----


Witam chciałem zastosować kod typu:
  1. SELECT @zmienna := 4;
  2. SELECT * FROM tabela WHERE id = @zmienna;

Jednak działa mi to tylko na MySQL 5, rozumiem że wcześniej nie było możliwości ustawiania zmiennych w MySQL, ale czy jest jakieś alternatywne rozwiązanie tego kodu dla wersji 4.x MySQLa?
Chodzi o to że mam trochę bardziej skomplikowane to zapytanie i @zmienna występuje częściej, a chciałbym tylko raz ją ustawiać, zamiast zmieniać kilka razy w zapytaniu (i chcę to robić bezpośrednio w SQLu, a nie przez PHP - uprzedzając takie odpowiedzi ;-) )
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://dev.mysql.com/doc/refman/4.1/en/user-variables.html
Cytat
MySQL supports user variables as of version 3.23.6.
Go to the top of the page
+Quote Post
oscar17
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

Ostrzeżenie: (0%)
-----


hmm, fakt...
Zatem dlaczego może to nie działać na zewnętrznym serwerze - jakieś ograniczenia mogą być? Bo nie działa to tylko na jednym, na localhoscie i na innym (też akurat z MySQL5, więc dlatego założyłem że to wina wersji MySQL, ale widzę że jednak nie) działa bez problemu
Nawet jak zrobię tak (czyli poprawniej chyba niż w pierwszym poście, choć działają obie wersje):
  1. SET @zmienna:=4;
  2. SELECT * FROM tabela WHERE id = @zmienna;
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a czym objawia sie to nie dzialanie? Jakis blad?
Go to the top of the page
+Quote Post
oscar17
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

Ostrzeżenie: (0%)
-----


Po prostu zmienna @zmienna jest NULL, także w zapytaniu zwraca zero wyników, po powinna być liczbą, tak jakby w ogóle nie przypisywał do tej zmiennej żadnych wartości, ale błędy żadne nie wyskakują...
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ty to wywolujesz z poziomu mysql czy z poziomu php? Jak z poziomu php to pokaz kod

ps:
nie: SET @zmienna:=4;
a: SET @zmienna=4;

przynajmniej wedlug manuala
Go to the top of the page
+Quote Post
oscar17
post
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

Ostrzeżenie: (0%)
-----


z MySQL, konkretnie navicatem.
próbowałem na wszystkie sposoby
  1. SET @zmienna:=4;
  2. SET @zmienna=4;
  3. SELECT @zmienna:=4;

Na innych serwerach takie wywołania działają, na tym żadne, to znaczy po każdym @zmienna zwraca NULL...

Ten post edytował oscar17 10.02.2009, 23:48:48
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.09.2025 - 19:26