![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
A ja mam taki problem.. mam stronkę, na której używam systemu newsow i komentarzy.. korzystam z biblioteki mysqli... mam plik php z funkcja lacz_bd() [zwraca obiekt
Kod $bd ] odpowiedzialną za ustanowienie połączenia z bazą właśnie za pomocą mysqli.. wszystko śmiga ładnie.. ale wymyśliłem sobie, żeby do komentarzy napisać osobny moduł, taki który mogliby wykorzystać inni użytkownicy.. tak więc logicznym jest także, aby ten moduł miał osobny plik php z funkcją lacz_bd_c() [zwraca obiekt Kod $bd_c ]... i teraz operacje dodawania/wyswietlania komentarzy nie działają, podobnie jak wszystkie inne zapytania na obiekcie Kod $bd_c .. wygląda to mniej więcej tak (kodu nie przytaczam ze względu na jego objętość): Kod <strona> lacz_bd(); operacje na obiekcie $bd //tu wszystko śmiga lacz_bd_c(); operacje na obiekcie $bd_c //tu właśnie pusto.. nic nie dodaje[insert], nic nie zwraca[select] itp $bd_c->close(); $bd->close(); </strona> taka modyfikacja także nic nie daje Kod <strona> lacz_bd(); operacje na obiekcie $bd //tu wszystko śmiga $bd->close(); lacz_bd_c(); operacje na obiekcie $bd_c //tu właśnie pusto.. nic nie dodaje[insert], nic nie zwraca[select] itp $bd_c->close(); </strona> odrazu moge napisać, że zapytania na obiekcie $bd jak i $bd_c są poprawne, gdyż wystarczy, że zostawię sam fragment kodu (czyli jedna funkcja łącząca z bazą na cały skrypt): Kod lacz_bd_c(); operacje na obiekcie $bd_c //teraz śmiga $bd_c->close(); i wszystko działa jak powinno.. to samo gdy w komentarzach zacznę odwoływać się do obiektu $bd zamiast tworzyć nowe połączenie, wtedy również bez zastrzeżeń.. wniosek: błąd tkwi w tym, że drugie połączenie coś knoci i na obiekcie przez niego zwracanym nie działają żadne zapytania do bazy danych.. miał ktoś kiedyś podobny problem?? używam krasnala, włączyłem php5.. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Najprawdopodobniej połączenie jest wywoływane tylko raz i dostaje swój identyfikator, ale ponowne jego wywołanie nie rozumie, że chcesz mieć połączenie osobne i próbuje przypisać mu to pierwsze. Sprawdź zresztą co Ci daje var_dump dla $bd i $bd_c. Możliwe, że gdzieś wali błąd przez próbę odwołania z tymi samymi danymi lub zamknięciem zmiennej $bd. Zdebuguj te zmienne...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 17:36 |