Autor Zpráva
Ugo
Profil
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);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: