Добрый день, есть запрос вида: PHP: $serverName = "serv"; $connectionInfo = array( "Database"=>"Database", "UID"=>"uid", "PWD"=>"pwd"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn == false) { die( print_r( sqlsrv_errors(), true)); } $res = "SELECT ID FROM base WHERE ID = '1' "; $stmt = sqlsrv_query($conn, $res); $count = sqlsrv_num_rows($stmt); if( $count > 0 ) { echo '1'; } else { echo '0'; } if($stmt == false){ die( print_r( sqlsrv_errors(), true ) ); } sqlsrv_close($conn); Почему $count возвращает ноль? Сам запрос $res я проверил, по нему есть данные. Пример брал отсюда https://php.ru/manual/function.sqlsrv-num-rows.html
Какое количество строк ожидается в выборке? (Судя по всему, 1: WHERE ID = '1') Они с 0 нумеруются как бы. Соответственно == 0 означает, что у вас одна строка соответствует условиям запроса в таблице PHP: if ( $count === false) echo "\nerror\n"; else if ( $count >=0) echo "\n$count\n"; $count >=0
@Artur_hopf, в описании функции написано, что: "This function requires that the statment resource be created with a static or keyset cursor". То есть, в метод sqlsrv_query() в этом случае надо передавать 4-й параметр (массив опций). --- Добавлено --- @Zuldek, количество, равное 0 означает, то, что в результате нет строк, удовлетворяющих условаям запроса. @Artur_hopf, там-же написано, что если использовть значение опций по-умолчанию, функция возвращает false, при нестрогом сравнении приводимое к нулю.