Jsem mysql & php zacatecnik. Moje predstava je takova, ze zavolam mysql_connect() jen jednou na zacatku session. Na zacatku kazde stranky mam tohle:
<?php
session_start();
if (!isset($_SESSION['db_conn'])) {
$db_conn=mysql_connect("mysql.wz.cz", "jmeno", "heslo");
$_SESSION['db_conn']=$db_conn;
}
$db_conn=$_SESSION['db_conn'];
...
?>
V miste ... poprve plati, ze gettype($db_conn)=="resource" a vsechno jede ok, ale kdyz se to spusti znovu tak gettype($db_conn)=="integer" a dalsi volani mysql funkci hlasi chybu, ze parametr neni typu resource.
Kde je chyba?
Na konci každé stránky se totiž spojení s db uzavře (existuje vyjimka, níž). Takže pokud chceš znovu zavolat spojení se stejným resource id, tak to prostě nejde. Takže ukládání je zbytečné. To co bys potřeboval je persistentní spojení, neboli spojení, které se nezruší na konci stránky. To je mysql_pconnect(), to ale musí být povolené adminama, což si nejsem úplně jistý. A jak tak čtu návod, tak spíš ne. A stejně je nutné vždy udělat mysql_pconnect(). Prostě schovávání resource id je úlet. Nedělej to tak. mysql_connect() je dostatečně rychlý, spolehlivý, funkční.
http://cz.php.net/manual/en/function.mysql-pconnect.php
mysql_pconnect()
AFAIK je povolena, ale chova se stejne jako obycejna. Spojeni neni persistentni.