Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czy są jakieś ograniczenia w ustawianiu uchwytu bazy jako global?
Forum PHP.pl > Forum > Bazy danych
nowy_pehapowiec
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
zegarek84
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??
nowy_pehapowiec
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.