![]() |
![]() |
![]() ![]()
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: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Uzywam pdo juz od dawna wiec sie wypowiem.
Cytat 1. Prawdopodobnie nie trzeba dołączać pliku sterownika bazy danych (np. db/mysql.php) Spojny interfejs do wiekszosci baz danych nie chodzi o zadne dolanczanie sterowinika db/mysql.php czy niewiadomo jakie tam kosmosy sa. ODBC odpowiednie sterowniki baz danych wszystko to mialo byc zastapione przez PDO. Cytat 2. PDO zabezpiecza zapytanie automatycznie przed SQL Injection Nie spotkalem sie z tym i to nie prawda, pdo posiada bindowanie parametrow ktore temu zapobiegaja ale to trzeba samemu wywolac. Cytat 2. Wciąż trzeba pisać niektóre zapytania osobno dla różnych typów baz (szczególnie CREATE TABLE). Tutaj bardziej mowa o zapytaniach DQL niz DDL przyklad Limit ORACLE nie posiada za to ma NUMROW, MySQL LIMIT x,y PG LIMIT OFSET. Cos takiego tylko Adodb wprowadzilo ale to nie jest pelna implementacja, bo bazki sie zmieniaja i rozbierznosci sa wielkie i nie kazdy producent trzyma sie standardu. Cytat 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. A co za problem napisac sobie takie cos do pdo. Co do kodu to nie zauwazylem ze wiecej. Kwestia jak sie pisze kod. Cytat 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ę. Nieraz sa problemy choc ostatnio coraz wiecej problemow zostalo wyeliminowanych. Pouzywaj a sam sie przekonasz. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 11:21 |