如何使用ODBC连接获取PHP中结果集中的计数或行数?

Top*_*per 4 php sql sybase odbc count

当我在My PHP Web应用程序中构建一个网页时,My Connection工作正常,但是当我想获得我在查询中使用的SELECT语句的行数时,它给了我-1!虽然我的结果集大约有10行.

我想获得结果集行的实际数量.我搜索了PHP手册和文档,但我找不到像Count函数这样的直接方法.

我想知道是否必须在另一个查询中创建一个Count(*)SQL语句并将其附加到我的Connection以获取行数?

有没有人知道一个简单直接的方法来获得它?

odbc_num_rows函数总是在结果中给出-1,所以我无法获得实际的行数.

我的编程语言是PHP,我的数据库引擎是Sybase,连接数据库的方式是ODBC.

这是我使用的代码: -

<?PHP

//PHP Code to connect to a certain database using ODBC and getting information from it

//Determining The Database Connection Parameters
$database = 'DatabaseName';
$username = 'UserName';
$password = 'Password';

//Opening the Connection
$conn = odbc_connect($database,$username,$password);

//Checking The Connection
if (!$conn)
{
exit("Connection Failed: " . $conn);
}

//Preparing The Query
$sql = "SELECT * FROM Table1 WHERE Field1='$v_Field1'";

//Executing The Query
$rs = odbc_exec($conn,$sql);

//Checking The Result Set
if (!$rs)
{
exit("Error in SQL");
}

echo "<p align='Center'><h1>The Results</h1></p>";

while ( odbc_fetch_row($rs) )

{
  $field1 = odbc_result($rs,1);
  $field2 = odbc_result($rs,2);
  $field3 = odbc_result($rs,3);
  echo "field1 : " . $field1 ;
  echo "field2 : " . $field2 ;
  echo "field3 : " . $field3 ;
}

$RowNumber = odbc_num_rows($rs);

echo "The Number of Selected Rows = " . $RowsNumber ; 

//Closing The Connection
odbc_close($conn);

?>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

Pek*_*ica 8

odbc_num_rows 似乎只对INSERT,UPDATE和DELETE查询可靠.

手册说:

使用odbc_num_rows()来确定SELECT之后可用的行数将返回-1并包含许多驱动程序.

解决此问题的一种方法是COUNT(*)在SQL中执行.请看这里的例子.