Autor | Zpráva | ||
---|---|---|---|
Ugo Profil |
#1 · Zasláno: 10. 7. 2012, 11:32:30 · Upravil/a: Ugo
Ahoj,
mám problém s vícero spojeními k databázím. Vždy se bere jen poslední otevřené spojení přestože link všude předávám. <?php /* connect() vraci mssql_link na kterym predtim spusti select_db, zkousel jsem i bez fce a taky nic */ $db_centrala = connect('centrala'); $db_podnik = connect($_POST['podnik_id']); /* obe pripojeni se vytvori bez problemu */ /* druha transakce uz se nevytvori */ mssql_query("BEGIN TRANSACTION", $db_centrala); mssql_query("BEGIN TRANSACTION", $db_podnik); /* funkce volajici procedury */ potvrdLink($db_centrala, $login, $_POST['confirm_id']); potvrd($db_podnik, $login, $_POST['confirm_id']); /* volani procedur uvnitr funkci */ function potvrd($db, $login, $idPotvrzeni) { $sp = mssql_init('[proc].Potvrzeni ', $db); mssql_bind($sp, '@IN_ID_Potvrzeni', $idPotvrzeni, SQLINT4); $result = mssql_execute($sp); } ?> Problém je, že první funkce kterou volám nad parametrem $db_centrala mi pise ze nemuze najit proceduru (ktera v ty databazi je), kdyz otocim poradi pripojeni, dela to samy druha procedura. navic na konci kde mam rollback, tak mi to pise ze nebyla nacata transakce pro $db_podnik (a pri prohozeni pripojeni opet obracene). Už sem z toho jelen, takže jestli někdo víte v čem je chyba, budu vděčný :) omg vyřešeno, sem já to hovado :D (hlavně že se v tom hodinu hrabu) v tom connectu nebyl poslední parametr jako true a já si pořád říkal jaktože se to chová jako reference ... takže řešení je lehké - $link = mssql_connect($foo["server"], $foo["login"], $foo["passwd"], true); |
||
Časová prodleva: 12 let
|
0