PHP ODBC返回的行数少于预期

PHP ODBC返回的行数少于预期,php,Php,我正在使用以下代码 $connection = odbc_connect("****** details I cant disclose ******"); if ($Connection) { $result = odbc_exec($connection, "***** sql query *****"); print (odbc_num_rows($result)); } 我正在使用sql server数据库。 在过去的一个月里,这还不错,但突然间,实际应该返回的行数减少了很多。若我

我正在使用以下代码

$connection = odbc_connect("****** details I cant disclose ******");
if ($Connection)
{
 $result = odbc_exec($connection, "***** sql query *****");
 print (odbc_num_rows($result));
}
我正在使用sql server数据库。
在过去的一个月里,这还不错,但突然间,实际应该返回的行数减少了很多。若我复制查询并在SQLServer控制台上按原样运行它,它将返回准确的预期行数,但若在php中通过odbc运行相同的查询,则得到的行数要少得多。我是php的新手,以前从未遇到过这个问题

首先检查服务器用于PHP的版本是否仍然支持
odbc
驱动程序。如果您最近更新了服务器,这可能会产生连锁反应。我总是建议任何使用
odbc
myql
的人使用
myqli
或最好使用
pdo
——这并不难学。由于您使用的旧方法很多ODBC驱动程序返回-1,因此在SQL完成之前,连接时间可能会缩短,因此通常ODBC_num_rows()不可靠。相反,尝试将odbc_fetch_array()与您自己的计数器一起使用。您是否考虑过打印数据以查看行数是否与您预期的一样多,并且查询返回的数据可能比您预期的少或多?您是否也考虑过使用“选择计数(*)”查询?