![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 13.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
W odzielnym pliku mam zapis połączenia z bazą danych za pomocą mysql dołączony do głównego pliku. W innym pliku mam stworzona klasę którą teraz dołączam do głównego pliku także. Słyszałem że mysqli jest efektywniejsze a mi nie działa połączenie z bazą danych w klasie na mysqli a na mysql działa bez zastrzeżeń. Proszę aby ktoś mi wytłumaczył jak rozwiązać problem z połączeniem za pomocą mysqli oraz czy jest ogromna różnica miedzy mysql a mysqli.
Dziękuje pozdrawiam set4812 |
|
|
![]() |
![]()
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 ![]() |
Najogólniej rzecz ujmując, to w przykładach widzisz $db, ponieważ jest to uchwyt do bazy danych zadeklarowany przez programistów. Przypisują do niego identyfikator połączenia i wykorzystują za każdym razem gdy chcą z niej skorzystać. To łącznik między skryptem i bazą. Nawet prostszy mysql tak działa, ale bardzo często nie jest on jawnie przekazywany do funkcji mysql_* gdyż ustawia się domyślnie i można go pominąć przy wywołaniu. Zauważ w manualu że 90% funkcji tego typu ma jako ostatni parametr mysql_identifier czy coś w tym stylu. To jest odpowiednik $db. Uzywa się go bowiem rzadko i jedynie w sytuacjach, gdy obsługujemy kilka baz/serwerów mysql w obrębie jednego skryptu. Dzięki przypisaniu $this->db = $db , identyfikator połączenia jest cały czas dla obiektu dostępny.
PS.: W ostatnim swoim przykładzie masz lukę. Nie sprawdzasz czy $res ma cokolwiek w sobie a od razu walisz przypisanie tablicy wyniku do $row. A skąd wiesz, że dostałeś jakikolwiek rekord? A może nie ma takiego w bazie? Pamiętaj, że powinno się zawsze sprawdzać poprawność pobranych danych nie tylko poprzez sprawdzanie czy wystąpił błąd, ale ile rekordów zwróciło zapytanie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 03:54 |