Ukončení připojení k DB MySQL
- n.u.r.v.
- Člen | 485
Ahoj, chtěl bych se jen zeptat, zda nette vždy automaticky ukončuje připojení k DB a taky kdy se k DB připojuje…
Protože DB mám nastavenou v config.neon a když např. DB nefunguje, tak se nespustí ani můj projekt – to znamená, že při každém startu nette ihned připojuje DB a celou dobu toto spojení udržuje?
Potřeboval bych také ošetřit, aby se připojení vždy řádně ukončilo… Díky
Edit: protože dnes jsem dal můj projekt na hosting na testování a zahltilo to DB – něco tam zůstalo viset…
Editoval n.u.r.v. (25. 7. 2013 10:39)
- David Matějka
- Moderator | 6445
je to trochu slozitejsi, ukoncovani spojeni by teda melo fungovat bez problemu (o to by se melo starat PDO), navazovani, pokud se nepletu, je takto:
v nette 2.0 diky tomu, ze connection dedi od pdo, se spojeni navazuje pri inicializaci sluzby reprezentujici konkretni pripojeni, tedy k pripojeni k databazi dojde napr. i kdyz v presenteru vyzadas Connection, ale nevyuzijes ho.
v nette 2.1 (dev) connection jiz nededi od pdo, preslo se na kompozici a defaultne (z hlediska tridy connection) se spojeni take navaze hned pri instancovani connection, je ale moznost nastavit spojeni jako „lazy“ a v tom pripade se navaze az pri provadeni prvniho dotazu, v sandboxu je spojeni jako „lazy“ jiz oznaceno defaultne
- michal.lohnisky
- Člen | 64
Ahoj,
v dokumentaci se píše
The connection remains active for the lifetime of that PDO object. To close the connection, you need to destroy the object by ensuring that all remaining references to it are deleted–you do this by assigning NULL to the variable that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.
Dá se tedy v Nette 2.1 nějak explicitně uzavřít spojení?
- David Matějka
- Moderator | 6445
@michal.lohnisky: api takovou metodu nenabizi. unsetnutim connection by se to spojeni melo uzavrit.. problem je, ze to connection je v DI containeru, v kazdem Selection a tim padem i v kazdem ActiveRow a kdovi kde jeste :)
zaloz issue na githubu, pripadne rovnou posli pull request…
(slo by to uzavrit i ted, ale jen nejakym hackovanim pres reflexi)