Diskuze: PHP- PDO
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ani jednou jsi nenapsal správně slovo "permanentní"...
Pokud ti přibývají připojení při prohlížení stránky, zřejmě jich v
aplikaci vytváříš víc než jedno. Dej si na to pozor. Stačí ti jedno pro
celou aplikaci. Nevím, jak jsi v PHP zběhlý, ale měl bys objektům všech
tříd, které potřebují připojení k databázi, předávat objekt toho
připojení pomocí dependency injection.
Jinak se podívej sem:
http://stackoverflow.com/…-to-database
a sem:
http://stackoverflow.com/…t-connection
Pokud se připojíš v nějaké hlavním souboru kam přidáváš externí obsah a v nich provádíš pouze dotazy, tak připojení provedeš pouze jednou..
Záleží, jakou máš strukturu appky a jak se připojuješ v jednotlivých oddílech(Resp. jak ho provádíš)..
Prosím mínuskáře, aby mi opravil můj komentář. Rád se učím věci
správně a pokud jsem radil špatně, chtěl bych, prosím, vědět, jak je to
má být.
Stejně tak nechápu, proč dostal mínus tazatel.
To je zde normální
Pro tazatele:
Můžeš popsat strukturu své aplikace?
Nejspíše napojuješ souhlas s připojením více x.
Hmm zapla se mi nejaka divna autokorekce....
souhlas = soubor
Jak bylo již uvedeno, je dobré pracovat pouze s jednou instancí, kde sis vytvořil připojení k databázi, několik duplicitních jich není potřeba.
Nejlepší způsob je použít Dependency Injection přes konstruktor, kdy můžeš měnit danou implementaci za běhu, méně dobrý způsob je poté pomocí statiky.
Pokud v PDO používáš něco jako PDO::ATTR_PERSISTENT => true, znamená to, že se ti připojení po ukončení skriptu nebude zavírat, ale je cachováno a znovu použito při skiptu novém. Přístup je poté mnohem rychlejší, ale přináší to také mnoho problémů.
Doporučji ti použít Cachegrind. Je to nástroj, díky kterému můžeš mimo jiné zkoumat počet volání dané metody a tam můžeš odhalit opětovné připojování k databázi.
Schvalne som si vyskusal PDO::ATTR_PERSISTENT => true a mozem povedat ze po testoch sa to spojenie sice nezavrie ale niekedy to vytvara duplicitne nove spojenie ktore sa tiez nezavru teda nieje to alebo to nefunguje spravne ako by malo. Lebo po volaniach z roznych pocitatcov skrypt ktory sa ma iba priprajat do databazi tak server vyrobil skoro pre kazde nove pripojenie nove pripojenie aj do databazi teda necachoval skoro nic. Preco to uz netusim.
Zobrazeno 8 zpráv z 8.