$dbh = new PDO("sqlsrv:Server=$hostname;Database=$dbname","$username","$pw");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$sql = 'select top 10 * from [med_Pay]';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$dbh->beginTransaction();
// этот блок тоже ни на что не влияет...
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['id'] . "\n";
}
$dbh->commit();
} catch (Exception $e) {
echo $e->getMessage(); // ][SQL Server]New transaction is not allowed because there are other threads running in the session.
}
не понимаю, в чем причина
UPD. Подсказали: Ну если я прав, то ты открыл курсор(это я терминами Оракл оперирую.. в мскуле может по другому называться), потом, не закрыв его, хочешь начать транзакцию. Что СУБД не очень хочет делать о чем и говорит.
Если хочешь делать как ты описал - получи все данные, закрой курсор и потом только открывай транзакцию.