Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 20.10.2010 Ostrzeżenie: (0%)
|
Witam,
Zaczynam uczyć się korzystać z PDO zamiast zwykłego mysql_*. Ułożyłem prostą klasę, żeby nie musieć pisać ciągle tego try ... catch. Nie wiem właśnie czy takie coś można stosować:
Czy takie coś ma w ogóle sens istnienia ? Oraz czy w PDO trzeba kończyć, coś jak mysql_close ? I jeżeli tak to jak ? No i jeszcze ostatnie: W powyższej klasie użyłem PDO::query. Wyczytałem, że jest jeszcze PDO::exec i PDO::prepare. Czym to się różni i które lepiej stosować ? Pozdrawiam, Michał |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%)
|
W PDO nie ma odpowiednika mysql_close, połączenia są zamykane w momencie gdy obiekty pdo przestają istnieć. Czyli albo unset() albo $pdo = null; albo po prostu same się zamkną po zakończeniu wykonywania skryptu.
PDO::exec() nie zwraca rekordów, używa się gdy nie potrzebujesz danych, przykładowo $pdo->exec("SET NAMES utf8"); PDO::query() to bezpośredni odpowiednik mysql_query, nie daje żadnych dodatkowych korzyści. Można używać kiedy dane zapytanie potrzebujesz wykonać raz, a zapytania nie budujesz z czegoś co user może wprowadzić, albo restrykcyjnie sprawdzasz co wprowadził. PDO::prepare() a potem execute() dla utworzonego obiektu - umożliwia parametryzację - przygotowujesz zapytanie raz a potem wywołujesz z różnymi parametrami, znacznie przyspiesza wykonywanie wielokrotnych zapytań na przykład wyciągnij rekord dla jakiegoś id. Dodatkowo parametry te nie wchodzą bezpośrednio do tekstu zapytania co zabezpiecza przed sql injection. Ten sposób jest najbardziej polecany. Ten post edytował pmir13 4.04.2012, 20:54:57 |
|
|
|
breaked PDO pytanie 4.04.2012, 19:45:14
by_ikar Do tego co mój przedmówca napisał, mogę dodać, że ... 4.04.2012, 22:21:24
breaked No tak, a co z tym skryptem co napisałem ? Gdybym ... 4.04.2012, 22:54:07
Crozin 1. W PHP nie masz wymogu natychmiastowego przechwy... 4.04.2012, 23:00:53 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 09:26 |