![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%) ![]() ![]() |
Napisałem kilka procedur by zwiększyć przejrzystość bazy i aplikacji w kontekście najbliższych zmian ale .... nie mogę tych procedur uruchamiać z poziomu php.
Poszukałem i znalazłem kilka niedzialających w moim przypadku rozwiązań: 1.Sposób połączenia z bazą (nie wiem co oznacza flaga 131074)
nie pozwala wywołać
ponieważ Kod <p>Error Number: 2014</p><p>Commands out of sync; you can't run this command now</p> 2. Łączymy się typowo
i wtedy Kod Error Number: 1312 PROCEDURE db_core_.getForumLast can't return a result set in the given context Na serwerze nie ma mysqli ! a nie chcę przenosić tych procedur do php ze względu na ich skomplikowanie. Jeśli jest komuś znane rozwiązanie tego problemu to bedę przesadnie wdzięczny. Pzdr |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
1. Flaga 131074 używana jest by zapobiec generowaniu niektórych błędów podczas wywoływania procedur, a ściślej jest to oznaczenie liczbowe następującej kombinacji flag: CLIENT_FOUND_ROWS | CLIENT_MULTI_RESULTS
"Commands out of sync; you can't run this command now". Błąd ten oznacza, że wywołujesz funkcje w niewłaściwej kolejności. Może tu chodzić o niewłaściwie skonstruowaną procedurę lub też o wywoływane w nieodpowiedniej kolejności zapytania sql. Łącząc się w taki sposób nie możesz, na przykład, wywołać fetch_arraya przed selectem etc. Być może set names musi być wykonywane bezwzględnie jako pierwsze, ale jak napisałem, błąd może być w jakiejś Twojej procedurze. 2. "can't return a result set in the given context" - patrz punkt pierwszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował drPayton 29.08.2007, 16:13:21 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%) ![]() ![]() |
Witam,
dzięki za zainteresowanie i naświetlenie problemu. Drążąc problem dalej, doszedłem do wniosku że w aplikacji która podczas odsłony wali do bazy 20 zapytań mógł wystąpić problem kolejności w jakiej mogły być wykonane. Od czego zależy ten kontekst wykonania zapytania ? Poniżej zamieszczam kod, który zwraca identyczne błędy jak aplikacja a wykonuje tylko jedno zapytanie. Problem nadal istnieje (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Procedura działa prawidłowo w pozostałych klientach.
Ekhm... czy u wszystkich działa tylko u mnie nie chce ? Ten post edytował jastu 29.08.2007, 23:20:34 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Z tego co zrozumiałem googlując, by wywoływać procedury musisz ustawić tą flagę przy łączeniu z bazą, w przeciwnym wypadku te błędy (context) będą się pojawiać... A kolejność zapytać, jeśli jest niewłaściwa, generuje ten drugi błąd o którym pisałeś
Ten post edytował drPayton 30.08.2007, 09:11:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.08.2025 - 17:16 |