Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czy są jakieś ograniczenia w ustawianiu uchwytu bazy jako global?
nowy_pehapowiec
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


Do tej pory wywołując funkcję, która coś tab robi z bazą przekazywałem $db_handler jako jeden z argumentów funkcji. Wcześniej na początku strony mam
$db_handler = new PDO( $dbsn );
$db_handler -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

Zmieniłem oczywiście wywołania funkcji ale niektóre z nich przestały działać. dostaje komunikat błędu, że obiektu pdo nie można przekonwertowac na string. Czy obiekty ( a $db_handler chyba jest obiektem) można używać jako globali?

Co jest grane? W czym błąd?

pozdro

Ten post edytował nowy_pehapowiec 1.10.2009, 23:20:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


krótki przykładowy kod o co się pytasz bo ciężko zrozumieć... można używać jako globala ale lepiej nie - lepszym rozwiązaniem było by użycie zmiennej statycznej z jakiejś klasy - ale to też jest nie zalecane przez wielu (moim zdaniem jak chcesz to używaj), najlepiej przekazuj jako parametr lub jakoś dowiąż do klasy (jeśli masz klasy odpowiedzialne za zadanie a nie jedną dużą funkcję)....

co do błędu to pokaż kod - skąd możemy wiedzieć gdzie próbujesz zmienić typ danych??
Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #3





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


Błędy są zawsze tego typu:
"PHP Catchable fatal error: Object of class PDO could not be converted to string in" i tutaj numer linii kodu. Tylko, że jeśli $db_handler przekaże jako zmienną do funkcji to wszystko działa. Ale jeśli korzystam z tej zmiennej jako global to się rypie. Wystarczy, że zmienię sposób przekazywania tej zmiennej to wtedy automatycznie mi się wszystko psuje. A wolałbym używać zmiennej bazy jako globala, nie musiałbym w kodzie przy wywoływaniu funkcji pamiętać o tej zmiennej.

W jaki inny sposób mógłbym zapewnić funkcjom dostęp do bazy danych?

pozdro
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: 25.12.2025 - 11:53