Nakładka mysql_* na PDO |
Nakładka mysql_* na PDO |
25.11.2013, 16:26:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) |
Pogrążony nudą, napisałem dziś dość ciekawy skrypt, który za zadanie ma wyglądać w 100% jak składnia zapytań mysql_*, jednak jego mechanika opiera się w całości o PDO.
Jak to działa? Skrypt podmienia dużą ilość funkcji oferowanych przez mysql_*, na funkcje, które zostały przepisane samemu, a ich działanie to tak naprawdę biblioteka PHP Data Objects, do której możemy odnosić się "starymi" instrukcjami. Po co to komu? Zastosowań takiego rozwiązania może być wiele. Najbardziej cieakwe z nich okazują się wtedy, gdy nasz gotowy projekt korzysta z połączenia z bazą danych przy użyciu mysql_connect, jednak chcielibyśmy zacząć używać nowszej i lepszej techniki (mowa o PDO), ale nie mamy zamiaru przepisywać całego skryptu od nowa. W takim wypadku wystarczy dołączyć prezentowaną nakładkę, a problem zniknie. Jeśli mowa o problemach, wyobraźmy sobie, że nasz serwer w ogóle już nie oferuje wsparcia dla mysql_connect, a Twój skrypt to w całości ta metoda. Co robić? Korzystając z nakładki, żaden serwer nie wyrzuci informacji, o braku wsparcia lub przestarzałej funkcji. Jeśli nie masz zamiaru uczyć się PDO, czy mysqli, bo w php nie programujesz za często, ten skrypt może zaoszczędzić Ci dużo czasu. Zalety nakładki: + szybkość tworzenia aplikacji + skrypt opiera się o PDO, czyli dużo nowszym interfejsie komunikacji z bazą danych niż mysql_connect + wymaga zaledwie 3 linijek zmian + kompatybilność z Twoim kodem, dzięki przeportowanej dużej liczbie funkcji, a także zachowanym miejscem na dodatkowe parametry, nie musisz nic więcej edytować w swojej aplikacji + funkcja mysql_real_escape_string posiada filtrowanie oparte o filter_var + możliwość połączenia się z takimi systemami jak PostgreSQL, czy SQLite, bez żadnych dodatkwoych zmian! Wady nakładki: - brak jakiejkolwiek obsługi błędów, w przypadku gdy nasz kod nie działa, problemów musimy doszukiwać się całkowicie indywidualnie - jakiś procent spadku wydajności, spowodowany oczywiście nadpisywaniem funkcji Lista funkcji, które zostały zawarte w nakładce: - mysql_connect - mysql_select_db - mysql_set_charset - mysql_query - mysql_fetch_array - mysql_fetch_assoc - mysql_fetch_row - mysql_fetch_object - mysql_real_escape_string - mysql_num_rows - mysql_affected_rows - mysql_create_db - mysql_drop_db - mysql_errno - mysql_error (atrapa) - mysql_close Przejdźmy do rzeczy, kod nakładki prezentuje się tak:
A oto przykład jego użycia:
Jedyne o czym trzeba pamiętać, to tych 2 linijkach w każdym z plików zawierającym instrukcje mysql:
Oraz oczywiście dołączeniu samej nakładki Co Wy na to? Bzdet, czy raczej komuś może się przyda? Ten post edytował SlimShady 25.11.2013, 16:31:01 -------------------- wszystkie drogi prowadzą do manuala :3
|
|
|
25.11.2013, 17:35:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
powiem krótko poco, ale może zajdziesz kogoś kto się na to skusi, ale tak naprawdę coś takiego nie ma najmniejszego sensu.. Po to jest PDO, żeby go używać, ponadto masz przecież strukturalny mysqli gdzie jedyna zmianą w podstawowych zapytaniach jest dopisanie litery i, wiec chyba odpowiedź nasuwa się sama, chciałeś dobrze ale poto wycofali mysql_* z php, żeby ludzie skończyli tworzyć zapytania w oparciu o tę bibliotekę, bo jest przestarzała, podatna na wszelkiego rodzaju atak itd... A wepchniecie w stare metody PDO, nie wiele da, bo minusy tego rozwiązania dalej pozostaną, wiec już lepiej nauczyć się PDO czy tez mysqli
Ten post edytował com 25.11.2013, 17:36:16 |
|
|
Wersja Lo-Fi | Aktualny czas: 22.09.2024 - 16:56 |