Autor | Zpráva | ||
---|---|---|---|
Milan1236000 Profil |
#1 · Zasláno: 5. 11. 2015, 22:54:02
Zdravím, četl jsem, že by se po vykonání všech příkazů pro práci s databází mělo "uzavřít" spojení s databází, ale na internetu jsem někde jinde zase našel, že příkaz
pripojeni.Close(); už se psát nemusí a děje se to automaticky.
Je to opravdu zbytečné pokaždé tedy psát? |
||
lionel messi Profil |
#2 · Zasláno: 5. 11. 2015, 22:55:55
Milan1236000:
„Je to opravdu zbytečné pokaždé tedy psát?“ Áno. |
||
Milan1236000 Profil |
#3 · Zasláno: 5. 11. 2015, 23:23:57
lionel messi:
Fajn, díky za odpověď. |
||
juriad Profil |
#4 · Zasláno: 5. 11. 2015, 23:26:35
Milan1236000:
Záleží asi na programovacím jazyku a databázových knihovnách. pripojeni.Close(); nevypadá na PHP, takže těžko říct.
|
||
Milan1236000 Profil |
#5 · Zasláno: 6. 11. 2015, 00:10:48
juriad:
Ono není jedno, zda to je C# pripojeni.Close(); nebo PHP $pripojeni->close(); ?
Takže v PHP se to uzavírat nemusí? Kde se to uzavírat musí? |
||
mimochodec Profil |
#6 · Zasláno: 6. 11. 2015, 00:11:12
zrovna nedávno jsem dostal tip od někoho, komu to zátěž databáze znatelně snížilo. Nemůže za nějakých okolností neuzavírání připojení zátěž serveru opravdu zvýšit?
|
||
Dusann Profil |
Podľa mňa čím skôr sa session do DB uzavrie tým lepšie to môže byť pre uvoľnenie prostriedkov. Ak v skripte po interakcii s DB nasleduje nejaký ďalší kód ktorý s DB už nepracuje a ktorý zaberá nejaký čas, tak načo počas tejto doby má byť session do DB stále aktívne ?
|
||
Časová prodleva: 5 dní
|
|||
Milan1236000 Profil |
#8 · Zasláno: 11. 11. 2015, 16:14:45
Ještě jednoduchý dotaz.
Mám v souboru paticka.php uzavření všech použitých HTML tagů a příkaz:
<?php $pripojeni->close(); ?> hlavičce.php nebudu mít připojení k databázi, tak by i přesto nemělo vadit, že se v patičce vykoná "odpojení od nepřipojené databáze", ne?
|
||
xROAL Profil |
#9 · Zasláno: 11. 11. 2015, 19:08:46
Milan1236000:
„odpojení od nepřipojené databáze“ Toto samé o sebe by vadiť nemuselo, skôr bude vadiť, že voláš metódu close() na niečom, čo nie je objekt. Kvôli tomu sa bude objavovať chybová hláška.
|
||
juriad Profil |
#10 · Zasláno: 11. 11. 2015, 19:11:17
Milan1236000:
V PHP zavírat spojení není nutné. Je to popsané v dokumentaci php.net/manual/en/mysqli.close.php. Význam by to mělo, jen kdybys po zavření připojení prováděl něco netriviálního, ale ty ho zavíráš v patičce, tedy na posledním místě, kde se vůbec něco děje. |
||
Milan1236000 Profil |
xROAL, juriad:
Díky za odpovědi. Zkusil jsem to tak, jsk jsem napsal a opravdu se objevila chyba, dokonce 2. Přidal jsem tam tedy podmínku <?php if(isset($pripojeni)) $pripojeni->close(); ?> |
||
Krakatoa Profil |
Milan1236000:
To má být myslím if(isset($pripojeni)) ... a bude to bez hlášky. A nechápu proč to děláš, jak už tu bylo psané, to ukončení připojení se stejně vykoná po dokončení php skriptu, takže když jej dáváš nakonec, je to naprosto zbytečné, to samé se ti vykoná pokud tam to ukončování mít nebudeš. Aha, tak jsi na to přišel ještě předemnou. |
||
Milan1236000 Profil |
#13 · Zasláno: 11. 11. 2015, 23:54:04
Krakatoa:
„ukončení připojení se stejně vykoná po dokončení php skriptu“ Po dokončení kterého skriptu? Mám docela dost částí php skriptů, asi nějak takhle vypadá stránka před zobrazením v prohlížeči <?php $pripojeni = new mysqli ... ?> ... <?php $title = "..."; ?> <?php include 'hlavicka.php'; ?> ... <title><?php echo $title; ?></title> ... <nav> ... <li <?php if (...) ...; ?>> ... <main> ... <?php while(...->fetch_object()) ... ?> ... <?php include 'paticka.php'; ?> |
||
Krakatoa Profil |
Milan1236000:
„Takže rozumím tomu správně, že se automaticky odpojí, až se provedou všechny skripty a zobrazí se stránka?“ Jo. Uvolňovat by to mělo smysl, kdyby to mělo smysl. Například má větší smysl uvolnit proměnnou $title hned po vypsání v title, dál ji snad potřebovat nebudeš, proč neuvolníš rači tu poroměnnou? :-) |
||
Milan1236000 Profil |
#15 · Zasláno: 12. 11. 2015, 00:58:57
Krakatoa:
To se taky dělá? No, proč ne, ale ta rychlost na serveru moc znát nebude. ne? :DD |
||
Časová prodleva: 8 let
|
0