Tela de login com PHP e SQL Server

Boa noite povo do GUJ

estou efetuando um sistema para o loca que trabalho, e após muitas coisas estarem dando certo, estou empacando na tela de login de usuário. Fiz o arquivo de login, o arquivo para validar o login, porém ao efetuar o teste, o programa da erro.

Segue abaixo o código da página
Arquivo login.php

<?PHP
    #Definir char-set 
	ini_set('default_charset', 'utf-8'); 
	
	
	$data = date('Y/m/d');	
	$hora = date('H:i:s');
	
	
	

	
?> 

<!--Código HTML --> 
<html> 
	<head> 
		<meta content="text/html; charset=utf-8" http-equiv="content-type">
		<meta content="CGR-Governança" name="author">
		<title>Sistema de ocorrências e painél de incidentes CGR</title>
		<link rel="stylesheet" type="text/css" href="login.css" head="">
	</head> 	
	
	<body> 
		<header class="container">
		<!--Imagens--> 
		<div class="figure"> 
			<figure class="cetec27">
				<img src="CETEC27.png" alt="Cetec27" width = "200" height="60" >
			</figure> 
			<figure class="caixa"> 
				<img src="bg_caixa.png" alt="CAIXA" > 
			</figure> 
		</div> 	
		<!--Fim do Banner-->
		</header>	
			<br><br><br><br><br><br><br><br><br><br><br><br>
			<form name="formLogin" method="POST" action="valida.php"> 
				<fieldset><br> 
					<legend>Sistema caixa de gerenciamento de ocorrências</legend>
					<label>Login:&nbsp;</label>
					<input type="text" name="usuario" id="usuario" class="medio"><br><br> 	
					<label>Senha:</label> 
					<input type="password" name="senha" id="senha" maxlength="16" class="medio"><br><br> 
					<button type="submit" value="Logar" name="btnLogar">Login</button>  
					<button type="reset" name="btnLimpar">Limpar</button> 
				</fieldset> 
			</form> 
			<p class="ajuda">Precisa de Ajuda?<a href="#">Clique Aqui</a></p>
			
	</body>	
</html> 

Arquivo valida.php

<?php 
		#Definir char-set 
		ini_set('default_charset', 'UTF-8'); 
		set_time_limit(120); //Define tempo limite de execução
		ERROR_REPORTING (E_ERROR);  //Somente exibe erros fatais
		include "conexao.php"; //Carrega funções de conexão com BD
		
		#Inicia o processo de verificação de login e senha 
		session_start();
		$sqlq = new COM("ADODB.Connection"); //instancia a classe de conexao
		$sqlq->Open("PROVIDER=SQLOLEDB;Data Source=.;Initial Catalog=Ocorrencias;User ID=user_des_001; Password=user_des_001"); //estabelece conexão com MSSQL 
		
		 
		$usuario = $_POST['usuario']; 
		$senha = $_POST['senha']; 
		$senhasegura = md5($senha); 

		#Cria a consulta 
		$query = "SELECT id FROM ocorrencias..tb_valida WHERE [usuario] ='{$usuario}' AND [senha]='{$senhasegura}'"; 
		$result = sqlsrv_query($sqlq,$query);
		$row = sqlsrv_fetch_array($result,SQLSRV_ASSOC); 
		$active=$row['active']; 
		$count=sqlsrv_num_rows($result); 
		
		//Se resultado for 1 
		if($count==1) 
		{ 
			session_register("usuario");
			$_SESSION['usuario'] = $usuario; 
			header("Location:teste.php"); 
		}
		else{
			##header("Location:erro.php"); 
			echo $query; 
			echo "<BR><BR>";
			echo "<h3>Erro no sistema!!!!</h3>"; 
			die(print_r(sqlsrv_errors(), true)); 
		} 
		
		/*$result=sqlsrv_query ($sqlq, $query); 
			if(sqlsrv_num_rows($result) > 0)
				{ 
					
					$_SESSION['usuario'] = $usuario; 
					$_SESSION['senha'] = $senha; 
					header("Location:teste.php"); 
				}
				else { 
					unset($_SESSION['usuario']); 
					unset($_SESSION['senha']); 
					##header("Location:erro.php"); 
					echo $query; 
					echo "<BR><BR>";
					echo "Erro no sistema!!!!<BR>"; 
					die(print_r(sqlsrv_errors(), true)); 
				}*/
				
?> 

E o erro que gera

Erro no sistema!!!
Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [code] => -14 [2] => An invalid parameter was passed to sqlsrv_num_rows. [message] => An invalid parameter was passed to sqlsrv_num_rows. ) )

Ah si, mandei gerar um ‘echo’ na consulta caso o erro fosse na instrução SQL, mas jogando direto no SQLSVR 2012, ele retorna ok na consulta.

O tópico é velho, mas ainda pode contibuir a alguém…

O que falta no código são parâmetros no retorno de resultados do SQL. Exemplo:

EM

$query = "SELECT id FROM ocorrencias..tb_valida WHERE [usuario] ='{$usuario}' AND [senha]='{$senhasegura}'"; 
$result = sqlsrv_query($sqlq,$query);
$row = sqlsrv_fetch_array($result,SQLSRV_ASSOC); 
$active=$row['active']; 
$count=sqlsrv_num_rows($result);

TROCAR PARA

$query = "SELECT id FROM ocorrencias..tb_valida WHERE [usuario] ='{$usuario}' AND [senha]='{$senhasegura}'"; 
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$result = sqlsrv_query( $sqlq, $query , $params, $options );
$count = sqlsrv_num_rows($result);

if ($result === false) {
	die(print_r(sqlsrv_errors(), true));
}

while ($row = sqlsrv_fetch_array($result,SQLSRV_ASSOC)){
	$active=$row['active']; 
}    

sqlsrv_free_stmt($result);