![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czy warto zastosować PDO? Nie wszystkie serwery jeszcze posiadają PHP5. Aktualnie (2.06.2007) na DHost.info wciąż jest zainstalowana wersja 4.7, choć na forum jest umieszczona ankieta, czy dokonać aktualizacji. Stawiam głównie na szybkość.
Niektóre zalety 1. Prawdopodobnie nie trzeba dołączać pliku sterownika bazy danych (np. db/mysql.php) 2. PDO zabezpiecza zapytanie automatycznie przed SQL Injection 3. Obsługa wyjątków. 4. Ilość zaktualizowanych rekordów (np. po to, aby wyświetlić, czy operacja się udała). 5. Obsługa SQLite 3. Niektóre wady 1. Więcej operacji + (prawdopodobnie) większe zużycie RAM. 2. Wciąż trzeba pisać niektóre zapytania osobno dla różnych typów baz (szczególnie CREATE TABLE). 3. Więcej kodu PHP Aktualnie stosuję do odczytu danych funkcję db_read() z 5 parametrami, która pobiera dane i zapisuje je od razu do tablicy numerycznej LUB asocjacyjnej BĄDŹ zmiennej (w zależności od 3 i 4 argumentu). Wystarczy podać nazwę tabeli bez prefiksu, wyciągane pola, nazwę tablicy/zmiennej, typ oraz warunek. Potem odczytuję dane z użyciem funkcji FOR. W przypadku przejścia na PDO trzeba będzie pisać pełne zapytania. Może się okazać, że przesiadka na PDO sprawi tylko więcej problemów niż korzyści. Jeżeli macie już jakieś doświadczenia z tym interfejsem, wypowiedzcie się. Dodane: czy funkcje klasy są kopiowane w pamięci RAM dla każdego obiektu? Dodane 2: test PDO->__construct() vs. mysql_connect() i mysql_select_db() :: Tutaj nie ma wielkiej różnicy, ale pod Windowsem jest duża - utworzenie obiektu PDO jest kilka razy wolniejsze (nawet 100ms). Zwróćcie uwagę, że połączenie z bazą nie jest zamykane - dlatego proceduralna metoda jest tu wolniejsza. Gdy odwrócę kota ogonem, proceduralny sposób jest najszybszy. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Co jest złego w zmiennych globalnych? Jeśli nie używamy zmiennej poza funkcją, a nie chcemy stracić jej wartości, możemy zadeklarować ją słowem static. A ja ten wątek przeniosłem na Przedszkole, echh.Trzeba było wywalić do kosza. Proszę Cię ~WebCM nie pisz nic na temat OOP bo nie masz o tym zielonego pojęcia. Nie zaniżaj poziomu merytorycznego forum. Najlepiej będzie jak przeszukasz sobie forum i poczytasz co nieco na temat OOP (i na temat OOP vs. Procedural). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 18:15 |