Я не могу понять, почему sqlsrv_fetch_assoc
возвращает только 1 строку, если в результирующем наборе есть 2 строки в соответствии с sqlsrv_num_rows
. Я пытался жестко закодировать параметр, но я все равно получаю тот же результат.sqlsrv array не возвращает все строки
SSMS Результат Набор
id description ------ ------------- 2 Administrator 3 User
PHP
$col = 'abcd';
$stmt = "SELECT id, [description] FROM dbo.tbl WHERE col = ?";
$params = array($col);
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$query = sqlsrv_query($conn, $stmt, $params, $options);
if($query === false) {
print(print_r(sqlsrv_errors()));
}
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
...
}
При попытке просмотра результирующего набора
$row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);
print_r($row);
Я получаю
Array ( [id] => 2 [description] => Administrator )
sqlsrv_num_rows
echo sqlsrv_num_rows($query);
//Returns 2
Да. В цикле 'while' был еще один' $ stmt/$ query'. Это написано над предыдущим набором результатов и закончило цикл. Выяснилось, а затем попытался удалить мой вопрос. Имеют 25 представителей. – Kermit
Ну, я рад, что вы этого не сделали :) Потому что теперь я получаю пользу. – Cullub