--TEST-- Test sending queries (query or prepare) with a timeout specified using transactions. Errors are expected. --FILE--  1)); $errors = sqlsrv_errors(SQLSRV_ERR_ALL); $e = $errors[0]; print($e['message'] . "\n"); print($e['code'] . "\n"); print($e['SQLSTATE'] . "\n"); if ($commit) { sqlsrv_commit($conn1); } else { sqlsrv_rollback($conn1); } sqlsrv_query($conn2, "DROP TABLE $tableName"); } function Repro() { startTest("sqlsrv_statement_query_timeout_transaction"); echo "\nTest begins...\n"; try { set_time_limit(0); sqlsrv_configure('WarningsReturnAsErrors', 1); // connect $conn1 = connect(array('ConnectionPooling'=>0)); if (!$conn1) { fatalError("Could not connect.\n"); } $conn2 = connect(array('ConnectionPooling'=>0)); if (!$conn2) { fatalError("Could not connect.\n"); } QueryTimeout($conn1, $conn2, true); QueryTimeout($conn1, $conn2, false); sqlsrv_close($conn1); sqlsrv_close($conn2); } catch (Exception $e) { echo $e->getMessage(); } echo "\nDone\n"; endTest("sqlsrv_statement_query_timeout_transaction"); } Repro(); ?> --EXPECTREGEX--  Test begins... \[Microsoft\]\[ODBC Driver 1[1-9] for SQL Server\]Query timeout expired 0 HYT00 \[Microsoft\]\[ODBC Driver 1[1-9] for SQL Server\]Query timeout expired 0 HYT00 Done Test \"sqlsrv_statement_query_timeout_transaction\" completed successfully\.